写在前面的话
- 本文主要简单归纳了一些JavaScript的基本数据类型以及运算符的语法规则等,本文只是简单归纳总结,如有不足,还请包涵。如有疑问,请留言交流,谢谢!
8进制、16进制、10进制
- 如果8进制中的数出现了8或9,则直接忽略前面的0,把这个数当成10进制处理
Number类型数据
- 存储的最大值 Number.MAX_VALUE
- 存储的最小值Number.MIN_VALUE
- 如果一个数和自己都不相等,则这个数字是NaN。
- var v = isNaN(“58”),var v = isNaN(“NULL”),返回false,先转化成数字。var v = isNaN(“undefined”)返回true。
Boolean类型
- boolean有两个最原生的值:true 、 false
- 别的任何数据类型,都可以转成boolean值。
string类型
- 1、写字符串字面量既可以用”“也可以用”
- 2、string是不可变的
- 3、\ 这是一个转义字符 \n 换行 \t 制表符(tab) \r\n 回车(Windows下) \反斜杠
类型转换
-
强制转换:
-
1、把其他类型转换成Number.
a: 使用转换函数:可以把任何的类型转换成Number()—-自动类型转换使用的就是转型函数-
总结:null —> 0
undefined —> NaN
false —> 0
true —>1
“” —>0
如果普通的字符串按照字面值进行转,如果全部都是数字,则转化成number,否则NaNb: 使用内置函数:parseInt(字符串,[进制]),只能把字符串转化成Number中的整数
- 1、在转换的时候,会忽略首尾的空白字符。
- 2、还可以接受第二个参数,表示前面的字符串中的数字的进制。
-
3、如果不传入第二个参数,则当成10进制的数来处理。
c: 使用内置:parseFloat(字符串):转换成浮点数;
-
-
2、把其他类型转换成Boolean
- 使用转换函数:Boolean(数据) 转成true或者false
NaN —> false
undefined —> false
null —> false
“” —> false
0 —> false
其余全部都是true-
3、把其他类型转换成字符串:String()
- 其他类型,怎么写就相当于直接加了一堆双引号 null —> “null” String(0x100)//输出256
- 超级简洁的转换成字符串的方法:任何数据 + “”
-
- 自动类型转换:
- 如果一个地方需要boolean,这个时候你传入了一个数字,那么js会自动把这个数字转换成boolean值
- 注意:自动类型转换的时候统统是转换函数
- +:运算符重载 ,如果+ 的两端有一个是字符串,则按照字符串的连接来处理。
运算符
+
- 1、普通的算数运算:如果没有字符串参与则就是普通的算数运算符。
- 如果有NaN参与运算,则结果还是NaN。
- 如果两个infinity或两个-infinity,结果还是infinity或-infinity
- 如果是一个infinity和一个-infinity,结果是NaN
- 2、如果有字符串参与运算:按照字符串连接进行计算。
-
- 只有算数运算。两个数相减,一定都会先转换成Number再去相减。
- 如果有NaN参与运算,则结果还是NaN。
*
- 只有算数运算:数学上的*
/
- 只有算数运算:数学的/
- Infinity / infinity = NaN
%取余 取模:操作整数
- 余数的符号和第一个数一致。
- infinity % infinity = NaN
自增和自减
- n++;
- n的值和n++表达式的值,
- 注意:n的值一定是自增之后的值,n++表达式的值是n自增之前的值。
- ++n;
- 表达式的值就是n自增之后的值
- –n和n–与++的含义相同
复合赋值运算
- 仅仅是写法的简化
比较运算符
- == 需要进行类型转换
- 判断是否相等,如果相等则是true,否则是 false
- 注意:如果有一个是Number,则自动的把类型都转换成Number之后,再判断是否相等。 (现在不考虑对象)
-
如果都是字符串,则比较字符串的内容是否完全相等。
!= 判断不等
=== 全恒等:在实际使用最多
-
只有两个值的类型和内容都相等,才是true。
!== 判断不恒等
比较浮点数的时候,很难得到一个想要的结果。
alert((0.3 - 0.2) == 0.1); //false
逻辑运算符
-
! 非
- true变false,false变true
- !可以操作任何类型,操作之前都会把数据先用转换函数转换成boolean之后再进行!,所以说,!的结果一定是boolean。
- 把一个数据转换成Boolean最优雅的方式 !!”a”.
&& 短路与
- 只要有一个是false,结果就是false。
- 短路:如果第一个是false,则不会去计算第二个表达式。
false && false -> false
|| 短路或
- 只要有一个是true,结果就是true。
-
短路:如果第一个是true,则不会去计算第二个表达式。
&& 和 ||
逻辑运算符不仅仅可以操作true和false,也可以操作任何的数据类型。而且结果也可以是任何的数据类型。
&&:如果第一个是true或者第一个经过转换函数后是true,则结果就是第二个数。
如果第一个是false或者第一个经过转换函数后是false,则结果就是第一个数。||:如果第一个是true,则结果就是第一个数;如果第一个数是false,结果就是第二个数。
高度总结:如果第一个能够决定最终的结果,则返回第一个,否则返回第二个。
三元运算符
- 需要三个数参与运算
- 表达式0 ? 表达式1 : 表达式2
- 表达式0的结果可以是任何的数据类型。如果是boolean值则直接使用,否则转换boolean值再用。
typeof
alert(typeof b);//undefined
alert(b);//报错