问题:
- Agurement概念认识?
- 伪数组概念认识?
- 函数的两种声明方式?
- 函数中没有声明而直接使用的变量是全局变量吗?
- Js块级作用域认识?
- 作用域链 概念认识?
- Js引擎执行代码的两步是什么?
- Var a = b= c = 9;这个语句中对a,b,c三个变量都进行声明了吗?可以用什么表示方式替换?
- 对象的创建方式有三种?分别会怎么操作的?
- New关键字执行过程?
回答:
- Agurement概念认识?
a) 它是函数的内置对象,用于存储传入的实参数据.它采用的是一种伪数组的存储方式.
b) 适用情况,当传入的实参个数太多的情况
c) 使用方式:与数组一样,只是不能使用数组一些方法,如pop()方法 - 伪数组概念认识?
a) 指对象的数据存储是数组形式,唯一的不同的是不能使用数组中的一些数据. - 函数的两种声明方式?
a) Function 函数名(参数){};
b) Var 函数名 = function(){}; 匿名函数声明. - 函数中没有声明而直接使用的变量是全局变量吗?
a) 是.算是javascript一个bug - Js块级作用域认识?
a) 以前js是没有块级作用域的,代表是var,
b) Es6后添加块级作用域,代表是let,const.
c) 建议以后使用let与const,这样与java接轨. - 作用域链 概念认识?
a) 针对内部函数访问外部函数时变量,变量名重复时,确定变量的一种方式.
b) 采用的是链式查找,找到为主的一个方式.
c) 产生的原因也是使用var声明变量,而var没有块级作用域的. - Js引擎执行代码的两步是什么?
a) 预解析,执行
b) 预解析:将js中var, function 声明提前到当前作用域的最前面,这里不包括let
c) 执行:按照代码顺序从上到下来执行代码. - Var a = b= c = 9;这个语句中对a,b,c三个变量都进行声明了吗?可以用什么表示方式替换?
a) 不是,只对a进行了声明
b) 等同于 var a; a= 9;b=9;c=9; - 对象的创建方式有三种?分别会怎么操作的?
a) 字面量,
b) 先创建 Object对象,再添加属性与方方
c) 使用构造方法来创建对象.
d) 对于独立的一个对象使用字面量创建,对于多个重复的对象,使用构造方法创建对象. - New关键字执行过程?
a) 在内存中创建一个新的空对象
b) 让this指向这个新的对象
c) 执行构造函数里的代码,给这个新对象添加属性和方法
d) 返回这个新对象,