面试知识----js基础

1.数据类型:

es5:字符串(string)、数字(number),undefined、null、对象(object)、布尔值(boolean)共六种;

es6:字符串(string)、数字(number),undefined、null、对象(object)、布尔值(boolean)、symbol 共七种;

谷歌新版本中还出现了一种 bigInt类型,是指安全存储、操作大整数。(但是很多人不把这个做为一个类型)

数据类型分为:原始类型(string、number、undefined、boolean、null)和引用类型(object)

2.this的指向的理解?

this的指向在函数定义的时候是确定不了的,只有函数执行的时候才能确定this到底指向谁,实际上this的最终指向的是那个调用它的对象
1):如果一个函数中有this,但是它没有被上一级的对象所调用,那么this指向的就是window,这里需要说明的是在js的严格版中this指向的不是window,但是我们这里不探讨严格版的问题,你想了解可以自行上网查找。
2):如果一个函数中有this,这个函数有被上一级的对象所调用,那么this指向的就是上一级的对象。
3):如果一个函数中有this,这个函数中包含多个对象,尽管这个函数是被最外层的对象所调用,this指向的也只是它上一级的对象。

3.&& 、||和!! 运算符分别能做什么?

&& 叫逻辑与,在其操作数中找到第一个虚值表达式并返回它,如果没有找到任何虚值表达式,则返回最后一个真值表达式。它采用短路来防止不必要的工作。
|| 叫逻辑或,在其操作数中找到第一个真值表达式并返回它。这也使用了短路来防止不必要的工作。在支持 ES6 默认函数参数之前,它用于初始化函数中的默认参数值。
!! 运算符可以将右侧的值强制转换为布尔值,这也是将值转换为布尔值的一种简单方法。

4.

posted @ 2020-10-15 20:50  星雨,恒奋斗,过客  阅读(93)  评论(0编辑  收藏  举报