javascript基本数据类型(面试必背)
基本数据类型
[String字符串、Number数值、Boolean布尔值、Null空值、Undefined未定义]
Number数值:
● Number.MAX_VALUE表示获取数字的表示的最大值,超过就会输出无穷大。
● Infinity表示无穷大。
● NaN是一个特殊的数字,表示Not A Number。(使用isNaN()方法检查一个值是否为NaN)
● 使用JS进行浮点运算,会出现一个不精确的结果。原因为十进制转二进制出现余数
引用类型
[Object对象、Array数组类型、Function函数类型]
[区别]基本数据类型和对象
基本数据类型是直接在栈里面存储,值为相互独立,互不影响。
对象是保存在堆内存中,每创建一个新的对象,就会开辟一个新的空间。对象的变量是保存的对象的内存地址,如果两个对象的保存的同一个地址,当一个发生改变,另外一个同样会发生改变。
检测当前变量的数据类型的方法typeof
(typeof 需判断的内容,输出类型)
console.log(typeof a); //‘undefined’
console.log(typeof(true)); //‘boolean’
console.log(typeof ‘123’); //‘string’
console.log(typeof 123); //‘number’
console.log(typeof NaN); //‘number’
console.log(typeof null); //‘object’
使用instanceof 判断一个变量是array还是object
console.log(obj instanceof Array); //输出结果false
console.log(obj instanceof Object); //输出结果true
强制转换数据类型
转String:
● 方法一:toString()方法(b=a.toString();//有返回值,需要另外的变量存储)ps:只有String有toString()方法
● 方法二:String()函数(b=String(a);//有返回值,需要另外的变量存储),相当于调用了toString()方法,但对null和undefined不会调用,而是直接转换为"null"和"undefined"
● 方法三(简便):运用算数运算符c=c+“”;通过加空的字符串,隐式转换由浏览器决定转换为String
● null和undefined这两个值没有toString()方法;
转Number:
● 数字字符串,直接转换为数字(String)
● 非数字字符串,转换为NaN(String)
● 空串或空格字符串,转换为0(String)
● true转为1,flase转为0(Boolean)
● null转为0(Null)
● undefind转为NaN(undefind)
● parseInt()函数将String转为Number(会自动只取有效的整数内容/同时可以用于对数值取整)
● parseFloat()函数将String转为Number(会自动只取整数+小数的内容)
● 运用算数运算符c=c-0|c=c1|c=c/1;通过-/运算可以直接隐式转换由浏览器决定转换为Number
● (简便)运用算数运算符c=+c可以直接转换为Number
转Boolean:
● 数值转:0和NaN为false,其余都为true
● 字符串转:空串为false,其余都为true
● null转:false
● undefined转:false
● 对象转:true
● (简便)对一个值进行两次取反!!a可以直接转换为Boolean
转进制:
● 转16:以0x开头(a=0x10,输出16)
● 转8:以0开头(a=070,输出56)(ps:”070”这种0开头的字符串有些浏览器会当成8进制输出成:56,有些浏览器会当成10进制输出成:070//解决方法:parseInt(a,10);10表示指定转换为10进制)
● 转2:以0b开头(ps:不是所有的浏览器都支持)