javascript 基础(2)
强制转换: Boolean()
数字零转为布尔值为false。非零数字转为布尔值为true。
空字符串转为false,非空字符串转为true。
null和undefined转为布尔值为false
parseInt()
动能:会试图将其收到的任何输入值(通常是字符串)转换成整数类型,如果转换失败就返回NAN。
转换规则:如果第一个非空白字符(空格、换行、tab)是数字或者正负号则开始转换,直到碰到一个非数字字符停止转换。如果第一个非空白字符不是数字或者正负号,转换失败,结果是NAN。
1 var tmp = Boolean(1);//true 2 var tmp = Boolean(0);//false 3 var tmp = Boolean(-1);//true 4 5 var tmp = Boolean("");//false 6 var tmp = Boolean("hello");//true 7 8 var tmp = Boolean(null);//false 9 var tmp = Boolean(undefined);//false 10 alert(tmp);
1、布尔值true=>1 false=>0
2、字符串纯数字的字符串 对应的数字,否则NaN
3、特殊数据类型null 0 undefined NaN
parseInt()兼容Number的功能,取整
parseFloat()取浮点数 带小数的数字 |
1 var tmp = Number(true); //1 2 var tmp = Number(false) ; 3 var tmp = Number("20a"); 4 var tmp = Number(null); //0 5 var tmp = Number (undefined); NaN 6 7 var tmp = Number("20a"); //NaN 8 var tmp = parseInt("20a"); //20 9 10 / var tmp = parseInt(3.14); //3
一元运算符:
[注]只能操作一个值的运算符,叫做-元运算符。
a++;表达式值:++后置,先取a的值,然后再进行+1操作。
++a ;表达式值:++前置,先进行+1操作,然后再取a的值。,
[注]上述的两个表达式都是进行+1操作。
1 a-- ; 2 -- a; 3 var a=5; 4 alert(a++);//5 5 alert(a);//6 6 7 alert(++a);//6 8 alert(a);//6 9 var a=5; 10 alert (a--);//5 11 alert(a);//4 12 13 alert (--a);//4 14 alert (a--);//4
关系运算符:
在等和不等的比较上,如果操作数为非数值遵从以下规律:
1、一个操作。数为布尔值。则比较之前将其转换成数值,false转成0,ture转成1
2、一个操作数为字符串,则比较前,将其转成数字再进行比较。
3、一个操作数为NaN,则==返回false,,!=返回true,且NaN与NaN自生不等
4、在全等和全不等,如果值和类型都不等,才返回true,否则返回false
=== !==
1 alert(1 == true);//true 2 alert(0 == false);//true 3 4 alert(20 = "20");//true 5 alert(1 != NaN);//true 6 alert(NaN != NaN);//true 7 8 alert(20 === "20");//false 9 alert(20 === Mumber(20"));//true 10 11
逻辑运算符:
与 表达式1 && 表达式2 【注】两个为真,与运算结果才为true
【短路操作】当第表达式1为假,表达式2就不去执行,直接判断整个为false
或 表达式1 || 表达式2
【注】两个为假,或运算结果才为false
【短路操作】当表达式1为真,表达式2就不去执行,直接判断整个为true
非 !表达式 逻辑非运算遵从
1、操作数是一个空字符串,返回true
2、操作数是一个非空字符串,返回false
3、操作数是0,返回true
4、操作数是任意非0的数(包括infinity),返回false
5、操作数是NaN,返回true
6、操作数是undefined,返回true
1 alert(5<3 && alert(a));//false 2 alert(5>3 || alert(a));//true 3 4 alert(!"");//true 5 alert(!"ss");//false 6 alert(!0);//true 7 alert(!1);//false 8 alert(!Infinity);//false 9 alert(!NaN);//true 10 alert(!undefined);//true
进制转换:
十进制转八进制/十六进制。
[方式]先将十进制数转成进制,再将二进制数转成对应的八进制或者十六进
二进制转八进制
[方式]从右向左,每三位- -组,不足三位的使用0补齐,将每一组数转成 十进制。
110 100 => 64
4*8^0 + 6*8^1 = 52;
二进制转十六进制
[方式]从右向左,每四位一组, 不足四位的使用0补齐,将每一组数转成十进 制。
0011 0100 => 34
4*16^0 + 3*16^1 = 52;