1.JavaScript 弱类型,基于原型的继承,与Java等基于类的继承有本质区别。
2.JavaScript语法:
2.1 空白,通常没有意义,但可以用来分隔字符。
2.2 注释,可以支持两种方式块注释/**/和行注释//,用于*可能在代码中用到块嵌套的时候容易引起问题,建议用块注释方式。
2.3 变量,var 被放在公共的全局名字空间中。
2.4 在逻辑运算中,false,null,undefined ,空字符‘ ’, 数字0,及数字NaN的值都被当着false,其他被当着true,包括‘false’。
2.5 for语句除了通常情况,还是for in形式遍历对象的所有属性,通常需要用obj.hasOwnProperty(var)来确定属性名就是该对象的成员。
2.6 可以通过对象子面量方便指定一个对象。
3.对象:
对象是属性的容器,每个属性都有名字和值,对象对新属性的名字和值没有约束,有原型链特性,运行对象继承另一对象的属性
3.1 对象字面变量,包括在花括号类的零个或多个“名/值”对,属性之间用逗号分隔,值必须用引号括住,并可以支持嵌套
3.2 检索,要检索对象中的值可以用[]括住表达式,如果是常量,则可以使用.表示法代替,优先使用后者,如果检索一个不存在的成员元素,将返回一个undefined值
3.3 更新,对象中的值可以通过赋值语句来更新,如果属性名已存在对象中将替换,如果不存在,将会扩充
3.4 应用,对象通过引用来传替,永远不会拷贝,每个对象都链接到一个原型对象,并可从中继承属性,通过字面变量创建的对象都链接到Object.prototype这个JavaScript中标准对象原型链接在更新时不起作用,原型是一种委托关系,查询一属性的时候,如果该对象没有,则首先进入原型对象找,直到Object.prototype中都没有,则返回undefined,在原型中添加的属性,所有基于该原型创建的对象,马上可见。
4.函数
编程就是将一组需求分解成一组函数与数据结构的技能
4.1 函数对象,函数就是对象,函数对象链接到Function.prototype(该对象本身被链接到Object.prototype)中,创建时有一个prototype对象属性,中有一个值为该函数名的constructor的属性
4.2 函数字面变量,函数可以通过字面变量来创建,函数有四部分,function关键字,函数名(可省略),参数,语句, 函数可以定义在函数内部,内部函数可以访问被嵌套函数中的变量,通过函数字面变量创建的对象包含一个到外部上下文的链接,称为闭包。
4.2 调用,函数有两个附加参数this和arguments,有四种调用模式:方法调用模式、函数调用模式、构造器调用模式 和apply调用模式,四种模式在初始化this上存在差异
4.2.1 方法调用模式:函数保存为对象的一个属性时称为方法,this被绑定到对象上,并可通过this访问对象
4.2.2 函数调用模式:当函数并非对象的属性时,this将被绑定到全局对象上,将导致方法不能通过内部函数帮助其工作,可以通过在方法上定义一个指向this的变量来解决
4.2.3 构造器调用模式:在函数面前带上new将创建一个隐藏链接到该函数的prototype成员的新对象,this将被绑定到新对象上。
4.2.4 apply方法可以用来构建一个参数数组并用其去调用函数,第一个参数选择this的值,第二个参数是参数数组
4.3 作用域,JavaScript有函数作用域但没有块作用域
JavaScript语言精粹学习笔记
最新推荐文章于 2024-08-27 13:38:21 发布