js的一些理解
javascript:一种单线程的解释性脚本语言(在执行的时候,解释一句一句执行一句)
javascript:一种单线程的解释性脚本语言(在执行的时候,解释一句一句执行一句)
js运行三部曲:
1.语法分析
语法分析过程:通篇扫描代码,看是否有低级的错误:如少写一个大括号、出现中文等,然后开始预编译
2.预编译
预编译过后再开始解释执行代码
3.解释执行
预编译四部曲:
下面的步骤从1到4依次执行
1.创建AO(执行期上下文)对象
2.找形参和变量声明,将变量和形参名AO的属性名,值为undefined
3.将实参值和形参值统一
4.在函数体里找函数声明,值赋予函数体
例子
下面的例子都可以按照上面的预编译四部曲分析得到结果
1、例一
1 | function bar() { |
2、例二
1 | console.log(bar()) // 输出:11 |
3、例三
1 | var a =123; |
4、例四
1 | function fn(a){ |
20181014更新
包装类
在js中,变量可以存在两种类型的值,即原始值和引用值,
原始值没有属性和方法,原始值在调用属性时会隐式调用包装类
例一:
1 | var num = 4; // num 是一个number原始值 |
例二:
1 | var str = 'abcd' |
例三:
1 | var str = 'abc' |
类数组
简单总结:
- 有length属性;
- 属性为非负整数
例:1
2
3
4
5var obj = {
'0' : 'abc',
'1' : 'bcd',
length : 2
}