1.两个数组或者对象,即使里面元素都相同,那么这两个数组(对象)也不全等。因为他们的开辟空间以及地址不一样。
<script>
var a = [1, 0];
var b = [1, 0];
console.log(a === b);//false
</script>
2.null、undefined、not define以及NaN的区别
1) not defined是一个报错,表示一个变量没有声明,也没有定义
2)null表示一个变量已经声明并且定义值即null
3)undefined 表示一个变量已声明但未定义;使用对象或数组中未声明的属性或变量
4)NaN是一种数字类型,常用作数字运算返回的结果中,表示结果无法转化成数字的数字类型,它不等于自身
3.let const var三者的区别
1)const定义的变量不可以修改,而且必须初始化。
2)var定义的变量可以修改,如果不初始化会输出undefined,不会报错。
3)let是块级作用域,函数内部使用let定义后,对函数外部无影响。且不存在变量的提升。
4.window.isNaN与Number.isNaN的区别
window.isNaN是直接判断参数是否为非数值类型,如果是非数值,就返回false;Number.isNaN只对数值类型有效,非数值类型的参数一律返回false。
5.C语言中输出(π)值
//#define LOCAL
#include <iostream>
#include <stdio.h>
#include <math.h>
using namespace std;
#define PI acos(-1)
int main()
{
printf("%.30lf\n",PI);
return 0;
}
6. 箭头函数中的this指向定义它的地方(父级作用域),而不指向调用它的地方,此时 this为静态的箭头函数中的this永远指向箭头函数所在父级作用域所属对象
7.promise、async、awiat三者关系
async会返回一个promise对象,promise对象结果由async函数执行的返回值决定。awiat必须写在async函数中,右侧表达式一般为promise对象,awiat返回的是promise成功的值。