该系列笔记主要取自于Javascript高级编程(第3版),这是第二次看该书,感觉还是能获取很多的知识。在这里只列举其中的重要知识点进行整理,以供大家作为学习交流。
- Javascript区分大小写
- Javascript的标识符需要满足以下要求:
- 第一个字符必须是字母、下划线或$
- 其他字符可以是字母、下划线、$或数字
- EcmaScript5引入严格模式,即在代码顶部添加"use strict",将改变解析和执行模型,也可以在某个函数体内添加该条语句
- Javascript的每条语句需要以分号结尾
- 使用var生命的变量为局部变量,如果没有使用var来生命此变量,则该变量将会变为全局变量
- 在严格模式下,不能定义名为eval和arguments的变量
- Javascript中有5中简单数据类型(undefined, null, boolean, number, string)和一种复杂数据类型(object),可以使用typeof反射一个变量来获得该变量的数据类型
反射的值 | 说明 |
undefined | 该值未定义 |
boolean | 该值是布尔值 |
string | 该值是字符串 |
number | 该值是数字 |
object | 该值是对象或null |
function | 该值是函数 |
- Object的每个实例都具有如下属性和方法:
属性、方法 | 说明 |
constructor | 保存着用于创建当前对象的函数 |
hasOwnProperty(propertyName) | 用于检测给定的属性在当前对象实例(而不是在实例的原型中)是否存在,参数propertyName必须是字符串 |
isPropertyOf(object) | 用于检查传入的对象是否是传入对象的原型 |
propertyIsEnumerable(propName) | 用于检查给定的属性是否能够使用for-in语句来枚举 |
toLocaleString() | 返回对象的字符串表示,和区域相关 |
toString() | 返回对象的字符串表示 |
valueOf() | 返回对象的字符串、数值或布尔表示,通常与toString()方法的返回值相同 |
- 一些特殊情况的比较结果:
表达式 | 值 | 表达式 | 值 |
null == undefined | true | true == 1 | true |
'NaN' == NaN | false | true == 2 | false |
5 == NaN | false | undefined == 0 | false |
NaN == NaN | false | null == 0 | false |
NaN != NaN | true | '5' == 5 | true |
false == 0 | true |
|
|
- 在严格模式下对函数的一些限制:
- 不能把函数命名为eval和arguments;
- 不能把参数命名为eval和arguments;
- 不能出现两个命名参数相同的情况
- 在函数体内可以使用arguments获取参数的情况,arguments是一个类数组对象,但不是数组,可以通过下表来进行获取,并且有length属性
- Javascript中的函数没有重载