JS的基本数据类型有哪些,基本数据类型和引用数据类型的区别,NaN是什么的缩写,JS的作用域类型,undefined==null返回的结果是什么,undefined与null的区别在哪,写一个函数判断

JS的基本数据类型有哪些,基本数据类型和引用数据类型的区别,NaN是什么的缩写,JS的作用域类型,undefined==null返回的结果是什么,undefined与null的区别在哪,写一个函数判断,第1张

JS的基本数据类型有哪些,基本数据类型和引用数据类型的区别,NaN是什么的缩写,JS的作用域类型,undefined==null返回的结果是什么,undefined与null的区别在哪,写一个函数判断

参考回答:

JS的基本数据类型有字符串,数字,布尔,数组,对象,Null,Undefined,基本数据类型是按值访问的,也就是说我们可以 *** 作保存在变量中的实际的值,

基本数据类型和引用数据类型的区别如下:

基本数据类型的值是不可变的,任何方法都无法改变一个基本类型的值,当这个变量重新赋值后看起来变量的值是改变了,但是这里变量名只是指向变量的一个指针,所以改变的是指针的指向改变,该变量是不变的,但是引用类型可以改变

基本数据类型不可以添加属性和方法,但是引用类型可以

基本数据类型的赋值是简单赋值,如果从一个变量向另一个变量赋值基本类型的值,会在变量对象上创建一个新值,然后把该值复制到为新变量分配的位置上,引用数据类型的赋值是对象引用,

基本数据类型的比较是值的比较,引用类型的比较是引用的比较,比较对象的内存地址是否相同

基本数据类型是存放在栈区的,引用数据类型同事保存在栈区和堆区

NaN是JS中的特殊值,表示非数字,NaN不是数字,但是他的数据类型是数字,它不等于任何值,包括自身,在布尔运算时被当做false,NaN与任何数运算得到的结果都是NaN,党员算失败或者运算无法返回正确的数值的就会返回NaN,一些数学函数的运算结果也会出现NaN ,

JS的作用域类型:

一般认为的作用域是词法作用域,此外JS还提供了一些动态改变作用域的方法,常见的作用域类型有:

函数作用域,如果在函数内部我们给未定义的一个变量赋值,这个变量会转变成为一个全局变量,

块作用域:块作用域吧标识符限制在{}中,

改变函数作用域的方法:

eval(),这个方法接受一个字符串作为参数,并将其中的内容视为好像在书写时就存在于程序中这个位置的代码,

with关键字:通常被当做重复引用同一个对象的多个属性的快捷方式

 

undefined与null:目前null和undefined基本是同义的,只有一些细微的差别,null表示没有对象,undefined表示缺少值,就是此处应该有一个值但是还没有定义,因此undefined==null返回false

此外了解== 和===的区别:

在做==比较时。不同类型的数据会先转换成一致后在做比较,===中如果类型不一致就直接返回false,一致的才会比较

类型判断函数,使用typeof即可,首先判断是否为null,之后用typeof哦按段,如果是object的话,再用array.isarray判断是否为数组,如果是数字的话用isNaN判断是否是NaN即可扩展学习:

JS采用的是词法作用域,也就是静态作用域,所以函数的作用域在函数定义的时候就决定了,

看如下例子:

var value = 1;function foo() {console.log(value);}function bar() {var value = 2;foo();}bar();

假设Javascript采用静态作用域,让我们分析下执行过程:

执行foo 函数,先从 foo 函数内部查找是否有局部变量 value,如果没有,就根据书写的位置,查找上面一层的代码,也就是 value 等于 1,所以结果会打印 1。

假设Javascript采用动态作用域,让我们分析下执行过程:

执行foo 函数,依然是从 foo 函数内部查找是否有局部变量 value。如果没有,就从调用函数的作用域,也就是 bar 函数内部查找 value 变量,所以结果会打印 2。

前面我们已经说了,Javascript采用的是静态作用域,所以这个例子的结果是 1。

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/zaji/4889460.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-11-11
下一篇 2022-11-12

发表评论

登录后才能评论

评论列表(0条)

保存