字符串转数值类型新增(隐式转换)
隐式转换 +(正号) - * / %
var a = "10";
console.log(typeof(a));
console.log(typeof(a-0));//隐式转换
console.log(typeof(a*1));//隐式转换
console.log(typeof(a/1));//隐式转换
console.log(typeof(a%11));//隐式转换
console.log(typeof(a+0));//这个不行
console.log(typeof(+a));//正号,可以转为数值类型
其他类型转为字符串
1. String()
语法:String(x)
作用:转为字符串类型
返回值(结果):字符串类型的值
2. toString()
语法:x.toString()
作用:转为字符串类型
返回值(结果):字符串类型的值
3. 隐式转换:
+(拼接) 10+""---》将数值10转成字符串
String(10)
10.toString()
区别:String()可以将任意其他类型转为成字符串类型
toString()不能将null和undefined转为字符串,其他的都可以转
var num = 1;//数值类型
console.log(typeof String(num)); //string
console.log(typeof num.toString());//string
var n = true;//布尔类型
console.log(n);
console.log(typeof String(n));//string
console.log(typeof n.toString());//string
var x;//未定义类型
console.log(typeof String(x));//string
// console.log(x.toString());
var nl = null;
console.log(typeof String(nl));//string
// console.log(nl.toString());
var y = 10;
console.log(typeof(y+""));//字符串类型的10
转为布尔类型:Boolean()
// 使用:Boolean(x)
// 作用:转布尔的
// 返回值(结果):true或者false
// 规则:只能将null,undefined,'',0,NaN把他们转为false,其他的全部是true
console.log(Boolean(10));
console.log(Boolean("10"));
console.log(Boolean("hahah"));
console.log(Boolean(undefined));
console.log(Boolean(null));
console.log(Boolean(0));
console.log(Boolean(''));
console.log(Boolean(NaN));
检测是否为非数字: isNaN()
语法:isNaN(x)
作用:检测x是否是非数字,是非数字结果是true,不是非数字是false( 是数字返回false,不是数字返回true)
举例:isNaN("abc")--》true isNaN(10)--->false
返回结果:true或者false
注意点:isNaN(x)等价于isNaN(Number(x))
isNaN(true)等价于 isNaN(Number(true))
console.log(isNaN(100));//false
console.log(isNaN("px100"));//true
console.log(isNaN(true));//false
运算符之算数运算符
+ 3+2=5
- 3-2=1
* 3*2=6
/ 3/2=1.5
% 3%2=1
console.log(10%3);
console.log(10%11);//分子小于分母,结果就是分子
console.log(5%9);
console.log(5%3);//2
运算符之赋值运算符
1、 = : 赋值
var a;
a = 10;10赋值给a,a中存储的就是10
2、+=:
a+=20;等价于a = a+20; 将左边和右边求和,重新赋值给a
3、-=
a-=20;等价于a = a-20; 将左边和右边求差,重新赋值给a
4、*=
a*=20;等价于a = a*20; 将左边和右边求积,重新赋值给a
5、/=
a/=20;等价于a = a/20; 将左边和右边求商,重新赋值给a
6、%=
a%=20;等价于a = a%20; 将左边和右边求余数,重新赋值给a
运算符之逻辑运算符
&& 且,并且
使用;布尔值类型值&&布尔类型值
特点;一假即假
|| 或,或者
使用:布尔类型值||布尔类型值
特点:一真即真
! 取反
使用 !布尔类型值
特点:颠倒真假
console.log(false&&false);
console.log(false&&true);
console.log(true&&true);
console.log(3>2&&6===9);//false
console.log(3>2||6===9);//true
console.log(false||false);//false
console.log(false||true);//true
console.log(true||true);//true
console.log(!false);//true
console.log(!true);//false
console.log(!!true);//true
运算符之比较运算符
比较运算符(关系运算符):比较出来的结果是一个布尔类型的值
>
<
>=
<=
==(不严格等号):只比较符号左右的数值,不比较他们的类型
===(严格等号): 即比较符号左右的数值,又比较他们的类型
!=
注意:除了===,其他的都会进行隐式转换
console.log(3>2);//true
console.log(3==2);//false
console.log(3>=3);//true
console.log(3=="3");
console.log(3==="3");
console.log("3">=2);//它会进行隐式转换,将字符串3转为数字3
运算符之自加自减运算符
符号:++(自加) -- (自减)
使用:a++(后置自加)、++a(前置自加)
区别:1、单独使用时,没有区别都是自身加1
2、在参与运算,输出,赋值等操作的时候,++a,先加1,再操作(运算,输出,赋值)
a++,先操作(运算,输出,赋值),后加1
注(单独使用时,没有区别,都是自身加1)
var x = 1;
// x++;
++x;
console.log(x);//2
2、在参与输出,赋值,运算等操作的时候,前置++,先加1,再操作 。后置++,先操作,后加1
// 参与输出时。a++先输出变量,再加1
// var a = 10;
// console.log(a++);//10 11
// console.log(a);
// var a = 10;
// console.log(++a); //11
// console.log(a);//11
// var x = 10;
// var y = x++; // 参与赋值运算,先赋值,先把x赋值给y
// console.log(y);//11
var x = 10;
var k = x++ + ++x;//参与运算时,先运算,后自加
// 10 + 12
console.log(k);
// 分析:代码的执行时从上向下,从左向右