1.数据类型的概述;
在JavaScript代码中,可以表示而且操做值的类型就叫作数据类型
数据类型能够分红可变类型和不可变类型,可变类型的值是能够修改的。相反不可变类型的值是不能够修改的。
数据类型还有原始类型(原始值)与引用类型(内置对象)
而原始乐行还分为原始类型和特殊类型,引用类型分为包装类型与引用类型
原始类型是直接表明JavaScript语言实现的最底层的数据。
原始类型分别有boolean类型、number类型和string类型三种。函数
2.number类型;整数和浮点数,JavaScript不区分整数和浮点数
number类型中的小数,在计算时可能出现偏差
1.并非全部的小数计算都会出现偏差
2.小数计算时要注意结果是否出现偏差
3.经过数字之的换算,将其转换成整数进行计算,再把结果换算成小数。
number类型中存在一个特殊的值叫NaN。
NaN表示当前的值不是一个数字值、但依旧是number类型,
它与任何值包括自身都不相等性能
3.string类型 - JavaScript的字符串就是由单引号或双引号包裹
在JavaScript中单引号和双引号是没有区别的——建议使用单引号code
string类型 - 文本自己须要单引号或双引号时
1.若是须要的是双引号,字符串只能使用单引号
2.若是须要的是单引号,字符串只能使用共赢好对象
var str3 = '"wolongxueyuan"wuwenjia'; console.log(str3); var str4 = "'wolongxueyuan'wuwenjia"; console.log(str4);
4.boolean类型
这个属性有两个值;true和false
因为JavaScript是区分大小写的,boolean类型的teue和false所有是小写。
JavaScript也能够把其余类型的数据自动转换为boolean类型ip
5.typeof运算符字符串
var num = 100; var boo = true; var str = 'wuwenjia'; console.log(typeof num); // number console.log(typeof boo); // boolean console.log(typeof str); // string var result = typeof num; console.log(result); // number console.log(typeof result); // string typeof运算符判断原始类型 语法结构——typeof变量名称。 结果——原始类型的名称(string类型)
6.instanceof运算符string
var str = new String('wuwenjia'); var num = new Number(100); var boo = new Boolean(true); // typeof运算符只能判断原始类型 console.log(typeof str);// object console.log(typeof num);// object console.log(typeof boo);// object // instanceof运算符用于判断引用类型(包装类型) console.log(str instanceof String);// true
typeof运算符和instanceof运算符的区别
typeof运算符console
1.用于判断原始类型 2.语法结构不一样——typeof 变量名称 3.获得结果不一样——原始类型的名称
instanceof运算符变量
1.用于判断引用类型(包装类型) 2.语法结构不一样——变量名称 instanceof 引用类型名称 3.获得结果不一样——布尔类型的值(true或false)
7.隐式3类型转换
因为JavaScript是弱类型/松散型的,在任何状况下均可以强制转换object
var result3 = +str; console.log(result3);// NaN console.log(typeof result3);// number var result4 = +boo; console.log(result4);// true为1,false为0 console.log(typeof result4);// number
转换为number类型
string类型转换为number类型 若是文本内容是普通的文本(非数字) -> 转换后的结果为 NaN 若是文本内容是数字值 -> 转换后的结果为对应数字值 boolean类型转换为number类型 true转换为1 false转换为0
var result5 = !!str; console.log(result5);// true console.log(typeof result5);// boolean var result6 = !!num; console.log(result6);// true console.log(typeof result6);// boolean
转换为boolean类型
string类型转换为boolean类型 空字符串(''或"")转换后的结果为false,其他状况都为true number类型转换为boolean类型 0或NaN转换后的结果为false,其他状况都为true undefined或null转换后的结果为false
8.显示类型转换
转换为string类型
String()函数 -> String(值) toString()方法 -> 变量名.toString() 对象的方法 -> 将变量看成是一个对象来使用
var result1 = String(num); console.log(typeof result1);// string var result2 = num.toString(); console.log(typeof result2);// string
转换为number类型
Number()函数 -> Number(值) parseInt()函数 -> parseInt(值) 转换为number类型,转换为一个整数 parseFloat()函数 -> parseFloat(值) 转换为number类型,转换为一个浮点数
var result3 = Number(boo); console.log(typeof result3);// number var result4 = parseInt(str1); console.log(typeof result4);// 100 var result5 = parseFloat(str1);// 100 console.log(result5);// 100 var result6 = parseInt(str2);// 100.1 console.log(result6);// 若是当前值为小数的话,parseInt()后取整数部分 - 100 var result7 = parseFloat(str2);// 100.1 console.log(result7);// 100.1
转换为boolean类型
Boolean()函数 -> Boolean(值)
var result8 = Boolean(str); console.log(result8);// true
隐式类型转换与显式类型转换的区别:
隐式类型转换 -优势 - 性能好 - 缺点 - 可读性差 显式类型转换 -优势 - 可读性高 -缺点 - 性能差