第一周晨考自测(1.0)

第一天:

1.变量名的命名规则和规范

变量名命名规则:由字母(大小写),数字,下划线(_),美元符号($)组成

不能以数字开头

不能使用关键字和保留字

变量名命名规范:当有多个字母组成时,使用驼峰写法(分为两种:大驼峰(bigData),小驼峰(big-data)),尽量不使用中文,变量名尽量有意义

2.js中的数据类型

js的数据类型可以分为两种:一种是基本数据类型(数字,字符串,undefined,null,布尔),另一种是复杂数据类型(函数,对象,数组,日期对象,Set,Map等)

3.如何检测js中的数据类型

使用typeof,只有一个值是可以不加小括号,有多个值时,或者是表达式等需要加上小括号,就是typeof()

4.数据类型转换

转成数字:(1)Number()(2)parseInt():一位接一位的检测,直到出现不是数字的 (3)parseFloat()识别小数部分。

转成字符串:(1)其他类型.toString()      (2)String(其他类型)   

转成布尔:Boolean(),除了"",0,null,undefined,NaN为false,其他都为true

5.null和undefined的区别

null是有值,但是是空值,使用Number(null)时为数字0

undefined是在定义变量的时候没有赋值,其类型就为undefined

第二天:

6.==和===的区别

==双等号是比较两边的量是否相等,不考虑数据类型,也就是说1==‘1’为true,而三等号===全等是数值和数据类型都必须一样

7.前置++和后置++的区别

前置++:是先参与运算,后自增1

后置++:先自增1,然后参与运算

8.什么是switch的穿透现象

Switch的穿透现象就是指下面的case分支没有break时,不管条件是否成立,都会从满足第一个条件的case分支向下穿透执行,直到遇到break或者switch循环结束,穿透才停止。

9.逻辑与和逻辑或的优先级

逻辑与的优先级大于逻辑或

第三天

10.三元表达式语法

判断条件 ?条件成立执行的代码:条件不成立执行的代码

11.while循环语法,do while循环语法,for循环语法

while(条件){条件成立执行的代码段} 

do{执行代码}while(条件)

for(开始条件;结束条件;变化量){代码}

12.break和continue的区别

break:当循环遇到break时,会立即执行循环,不会进行下一轮的循环

continue:当循环遇到continue时,会结束当前循环,开始下一轮循环

第四天

13.如何定义一个函数

定义一个函数有两种方式,一个是赋值式函数:var 函数名=function(){},另一个是声明式函数:function 函数名(){}

14.两种定义函数的区别

声明式函数可以先调用后定义

赋值式函数只能先定义后调用

15.什么是arguments

当调用函数的实际传参不清楚时,就可以用arguments来保存传递过来的实参,它是函数内置的一个变量。它拥有arguments.length属性来获取实参的个数。里面的参数值可以用索引的方式获取:arguments[i],遍历每一个参数可以从索引0到arguments.length-1.

16.什么是预解析及重名情况

预解析是代码执行之前的一个阶段

预解析的两种情况:当遇到var关键字时,其关键字会与变量名提前,但不会赋值;当遇到声明式函数的时候,会将函数名提前,并将其赋值为一个函数,等价于将整个函数提前。

与解析的重名情况:(1)变量名与变量名重名(以第一个定义的变量名为准,后面定义的无意义)(2)函数名与函数名重名(后面定义的函数名会覆盖前面的函数名,也就是以后面的函数名为准)(3)变量名与函数名重名(以函数名为准)

17.数据类型如何存储

简单数据类型存放在栈中,复杂数据类型的值存在堆中,其引用地址存放在栈中,并赋值给一个变量。

第五天

18.什么是作用域链

就是变量访问机制,当访问变量时,首先会在当前作用域进行查询,如果有该变量,则进行访问;如果当前作用域中没有,则向上一级作用域进行查找,如果上一级作用域中存在该变量,则进行访问,如果不存在,则继续向上一级作用域进行查找;以此类推,直到全局作用域,如果全局作用域中存在该变量,则进行访问,如果全局作用域不存在该变量,则会报错。

19.如何定义对象

定义对象有两种方式:(1)字面量定义  var 变量名={}    定义空对象 ,var 变量名={name:'mez',age:17}定义有内容的对象

(2)内置构造函数定义

var 变量名=new Object()内置构造函数定义

20.点语法和数组关联语法的区别

点语法:当对象的键名符合变量名的命名规则的时候,可以用点语法或数组关联语法进行访问

数组关联语法:当对象的键名不符合变量名的命名规则的时候,只能使用数组关联语法,还有就是键名是存数字或变量的时候。

21.数据类型赋值

简单数据类型的赋值就是正常赋值,使用(=)即可,改变其中的一个的值不会影响另一个

复杂数据类型的赋值一般不直接使用(=)赋值,因为这样的赋值是引用地址的赋值,改变其中一个,另一个也会改变,一般使用循环加索引的方式来赋值。

22.什么是递归函数,书写递归函数需要注意什么

递归函数就是一个函数内部,调用了自己,循环往复。在书写递归函数时,一般由以下内容构成:初始化,自增,执行代码,条件判断,不然就是一个没有尽头的递归函数,我们叫做死递归

23.如何定义数组

定义数组有两种方式:(1)字面量的方式:var 变量名=[] 定义一个空数组,var 变量名=[1,2,3,4,5,6] 定义一个有内容的数组

(2)内置构造函数的方式: var 变量名=new Array()定义空数组,var 变量名=new Array(5)定义指定长度的空数组,var 变量名=new Array(5,6,7,8)定义有内容的数组

你可能感兴趣的:(mez_Blog的专栏,前端,JavaScript,javascript,开发语言,ecmascript,学习,前端)