原始类型(不可修改)
(数值,字符串,布尔值,unll,undefined,Symbol(符号))
虽然它们不可被修改但是可以自由的切换不同类型的值
Number
Number用于表示整数和近似实数(但是定义Number的数值是范围)
超出这个值会带来精度上面的损失
算数操作符来操作数值,包括 加+ 减- 乘* 除/ 余% 去幂**
还有Math对象的属性提供 可以支持更加复杂的数学计算
关于Number出现的二个常量
NaN(非数值)
特殊的的特性,它和任何值都不相等,意味着x===NaN来确定某个变量x的值是NaN
相反也可以写成
x!=x或者Number.isNaN(x)
Infinity(正无穷大)
Es6定义Number属性
Number.isNaN(x)判断是不是NaN
Number.isFinte(x)判断是不是数值还是无穷大
Number.isInteger(x)判断x是不是整数
String类型
JavaScript表示文本的类型是String,即字符串
每个值都表示Unicode字符
JavaScript的字符串(以及数组)使用基于零的索引
要JavaScript可以把字符串放到一对匹配的单引号,双引号还在反引号,双引号字符和反引号
反引号 定界字符串是ES6的特性 :允许在字符串字面量中包含(或者插入)JavaScript表达式
JavaScript最早版本要求字符串字面量必须写在一行,使用**+操作符**把单行字符串拼接成长字符串的JavaScript代码
"hello"+"word"
但是到了es5 ,我们可以在后面加一个\从而把字符串字面量写到多行上
"weo/fff"
"weo\
fff\
"
到了es6反引号语法支持跨行字符串
` sssssssssssss
ssssssssssssss
ssssssssssssss`
在客户端JavaScript编程里面,JavaScript代码可能包含HTML代码的字符串
<button onclick="alert('JavaScript')">点击</button>
注意
最好JavaScript和HTML分别使用不同的引号
字符串字面量中的转义序列
反斜杠(/)在JavaScript字符串中有特殊作用,
它与后面的字符组合在一起,
可以在字符串中表示一个无法直接表示字符
比如说**\n是一个表示换行符**的转义序列
JavaScript还提供了操作字符串丰富的API
模板字面量
可以包含任意JavaScript表达式,反引号中字符串字面量最终值来计算,涉及对其中包含的所有表达式求值,将这些表达式的值转化为字符串
let name="Bill"
let greeting=`hello ${name}`
${对象} ===》当作JavaScript表达式来进行一个解释,而位于这对花括号之外的而是常规字符串字面量,括号里面的的表达式会被求值,然后转化为字符串并插入模板中
es6 内置标签对象 String.raw() 这个函数返回反引号中未经处理的文本,既不会处理任何反斜杠转义
String.raw`\n`.length ===>2
布尔值
布尔值表示真或假 true flase
布尔值一般在JavaScript常用于控制结构
例如:if/else
JavaScript的任何值都可以转化为布尔值
&& || !
Null
null是u一个关键字,求值是一个特殊值,通常用于表示某个值不存在,对于null使用Typeof操作符去判断返回字符串“object”
表示一个null可以看作是一个特殊的对象,“没有对象”
undefined
预定义的全局函数
JavaScript 中 undefined表示不存在,但是JavaScript表示深层次的不存在,具体来说,变量的初始化时就是undefined
,在查询不存在的对象属性或者数组元素也会得到undefined,还有没有明确的返回值也是返回undefined,没有传值的的函数参数是也是undefined,
Null 和 undefined
注意
都可以表示不存在值,经常被混用,相等的操作符==,认为相等
如果要进行区分必须要使用===
特点
undefined表示一种系统级别,意料之外或者没有值
null表示程序级别,正常或意料之中的没有值
Symbol
es6新增的原始类型
用于非字符的属性名
JavaScript的基础类型object是一个属性无序集合
其中每个属性都有一个名字和一个值,属性名(在es6之前)必须是字符串,但是在es6和之后的版本,属性也可以用符号作为属性名