JavaScript高级程序设计--基本概念--笔记

语句

  1. if语句会自动调用Boolean()转换函数将表达式的结果转换为一个布尔值
  2. for-in 循环输出的属性名的顺序是不可预测的,返回的先后次序可能因浏览器而异,如果要迭代的对象的变量值为null或undefined, for-in语句会抛出错误,ECMAScript5更正了这一行为;对这种情况不再抛出错误,而只是不执行循环体,为了兼容,在使用for-in循环之前,先检测该对象的值是不是null或undefined
  3. switch语句中可以使用任何数据类型,无论是字符串,还是对象都没有问题,其次,每个
  4.   case的值不一定是常量,可以是变量,甚至是表达式

理解参数

可以向函数传递任意数量的参数,并且可以通过arguments对象来访问这些参数

    1. arguments对象只是与数组类似,但它不是Array的实例。虽然可以通过下标访问元素,通过length属性确定传递进来多少个参数,没有传递值的命名参数会自动被赋予undefined值
    2. ECMAScriptA中函数命名的参数只提供便利,但不是必需的;另外,在命名参数方面,其他语言可能需要事先创建一个函数签名,而将来的调用必须与该签名一致,但在ECMAScript中,没有这些条条框框,解析器不会验证命名参数
    3. ECMAScript中的所有参数传递的都是值,不可能通过引用传递参数
    4. 关于arguments的行为,还有一点比较有意思。那就是它的值永远与对应命名参数的值保持同步。因为arguments对象中的值会自动反映到对应的命名参数,不过这并不是说读取这两个值会访问相同的内存空间,它们的内存空间是独立的,但它们的值会同步。但这种影响是单向的:修改命名参数不会改变arguments中对应的值;另外,arguments对象的长度是由传入的参数个数决定的,不是由定义函数时的命名参数个数决定的,如果只传入一个参数,那么arguments[1]设置的值不会反应到命名参数中去。
    5. 严格模式中,对arguments赋值会变得无效,其次,重写arguments会导致语法错误
    6. 通过检查传入参数的类型和数量并作出不同的反应,可以模仿方法的重载
时间: 2024-10-21 04:47:26

JavaScript高级程序设计--基本概念--笔记的相关文章

《JavaScript高级程序设计》读书笔记--前言

起因 web编程过程使用javascript时感觉很吃力,效率很低.根本原因在于对javascript整个知识体系不熟,看来需要找些书脑补一下,同时欢迎众网友监督. 大神推荐书籍 看了博客大神们推荐的javascript书籍和推荐的阅读顺序,如下所示: 从头到尾对一遍<<Javascript高级程序设计>>,不懂的地方可以暂时掠过,给自己对javascript有一个大体的印象 认认真真的读完这本书:<<编写可维护的javascript>>,从编码规范,技巧,

《JavaScript 高级程序设计》读书笔记一 简介

一   历史 二   实现 a. javascript三个部分: ECMAScript:由ECMA-262定义,提供核心语言功能: DOM:提供HTML的应用程序编程接口/提供访问和操作网页内容的方法和接口: BOM:提供与浏览器交互的方法和接口: 三   版本 <JavaScript 高级程序设计>读书笔记一 简介

《JavaScript 高级程序设计》读书笔记二 使用JavaScript

一   <script>元素 a.四个属性: async:立即异步加载外部脚本: defer:延迟到文档完全被解析再加载外部脚本: src:外部脚本路径: type:脚本语言的内容类型: 二   XHTML中用法 a. //<![CDATA[ javascript代码 //]]> 三   <noscript>元素 <JavaScript 高级程序设计>读书笔记二 使用JavaScript

《JavaScript高级程序设计》学习笔记 基本概念

系统学习JS, 从<JavaScript高级程序设计>入门,通过学习jQuery或者angularJS源码来进阶. 第1章 JavaScript简介 1.JS问世的目的是处理以前由服务器端语言(如Perl)负责的一些输入验证操作,由Netscape主导开发,那时候微软的IE还不能独领风骚.最初叫做LiveScript,当时媒体热炒Java,于是改名为JavaScript.JavaScript和ECMAScript通常指同一门语言,但是,JavaScript是ECMA-262标准的实现和扩展.E

《Javascript高级程序设计》读书笔记之对象创建

<javascript高级程序设计>读过有两遍了,有些重要内容总是会忘记,写一下读书笔记备忘 创建对象 工厂模式 工厂模式优点:有了封装的概念,解决了创建多个相似对象的问题 缺点:没有解决对象识别问题,所有对象都仅是Object的实例 function createPerson(name,age,job) { var o=new Object(); o.name=name; o.age=age; o.job=job; o.sayName=function(){ alert(this.name)

JavaScript高级程序设计(读书笔记)(六)

本笔记汇总了作者认为"JavaScript高级程序设计"这本书的前七章知识重点,仅供参考. 第六章 面向对象的程序设计 面向对象(Object-Oriented, OO)的语言有一个标志,那就是它们都有类的概念,而通过类可以创建任意多个具有相同属性和方法的对象.但ECMAScript中没有类的概念,因此它的对象也与基于类的语言中的对象有所不同.ECMAScript把对象定义为:"无序属性的集合,其属性可以包含基本值.对象或者函数."严格来讲,这就相当于说对象是一组没

JavaScript高级程序设计(读书笔记)(五)

本笔记汇总了作者认为"JavaScript高级程序设计"这本书的前七章知识重点,仅供参考. 第五章 引用类型 小结: 对象在JavaScript中被称为引用类型的值,而且有一些内置的引用类型可以用来创建特定的对象,现简要总结如下: 引用类型与传统面向对象程序设计中的类相似,但实现不同: Object是一个基础类型,其他所有类型都从Object继承了基本的行为: Array类型是一组值得有序列表,同时还提供了操作和转换这些值的功能: Date类型提供了有关日期和时间的信息,包括当前日期和

《JavaScript高级程序设计》学习笔记(5)——面向对象编程

欢迎关注本人的微信公众号"前端小填填",专注前端技术的基础和项目开发的学习. 本节内容对应<JavaScript高级程序设计>的第六章内容. 1.面向对象(Object-Oriented, OO)的语言有一个标志,那就是它们都有类的概念,而通过类可以创建任意多个具有相同属性和方法的对象.前面提到过,ECMAScript中没有类的概念,因此它的对象也与基于类的语言中的对象有所不同. ECMA-262把对象定义为:"无序属性的集合,其属性可以包含基本值.对象或者函数.

1 《JavaScript高级程序设计》学习笔记(1)

欢迎关注本人的微信公众号"前端小填填",专注前端技术的基础和项目开发的学习. 首先,我将从<JavaScript高级程序设计>这本JavaScript学习者必看的经典教程开始,JavaScript的很多语法规则及习惯用法和Java极其相似,因此对于有Java基础的学习者来说,JS是很容易上手的.该系列的每次更新将对应原书的一章内容,本次更新对应原书的第三章,主要是一些基本概念,内容很简单, 知识点也较少. 1.和一般的编程语言一样,标识符可以由字母.数字.下划线和美元符组成