JavaScript暑期学习(一)

获得的新的知识:

数据类型

变量提升

JavaScript引擎的工作方式是,先解析代码,获取所有被声明的变量,然后再一行一行运行。造成所有的变量的声明语句,都会被提升到代码的头部,即变量提升。

对象

一组键值对的集合:键名(字符串)+ 键值(任意数据类型,包括函数、对象)

对象的属性可以动态创建,不必声明时就指定。

注意点:使用方括号运算符引用对象属性时必须加上引号,否则表示变量。数字键名不能用点运算符,否则会报错。

in运算符:检查属性是否存在。 字符串 in 对象

for…in循环:循环用来遍历一个对象的全部属性。 for(var i in obj)

with语句:操作同一个对象的多个属性(不能用于赋值)。 with(对象){语句} 【不建议使用】

函数

采用函数表达式时,function命令后不能带有函数名(仅函数体内有效)。

函数执行时所在的作用域,是定义时的作用域,而不是调用时所在的作用域。例如:函数A调用函数B,函数B不会引用函数A的内部变量。

arguments对象

arguments对象包含了函数运行时的所有参数,正常模式下可修改,严格模式下与函数参数不具有联动关系。

闭包

函数内部的函数。优点:

  • 读取函数内部的变量,让这些变量始终保存在内存中。
  • 封装对象的私有属性和私有方法

立即执行的函数表达式(IIFE)

目的:不必为函数命名,避免污染全局变量;IIFE内部形成单独的作用域,可以封装一些外部无法读取的私有变量。

eval命令

接受字符串参数,并将这个字符串当作语句执行。别名调用,eval内部一律时全局作用域。

发表评论

电子邮件地址不会被公开。 必填项已用*标注