强制类型转换
将一个数据类型强制转换为另外一个数据类型
在js中如果需要写16进制的数字,需要以0x开头。8进制数字,需要以0开头,二进制数字需要以0b开头。
string 类型转换
方法一:
调用被转换类型的toString()方法
----被转换类型。toString()
该方法不会影响到原变量,它会将转换的结果返回。
var a= 234;
var a= a.toString();
console.log(a); //234
console.log(typeof a); //string
方法二:
调用string()函数
—直接写string();
将被转换数据作为参数传递给函数,可以转换null和undefined
var a= 234;
a = String(a);
console.log(a);
console.log(typeof a);
number 类型转换
方法三: 调用number函数
字符串如果是纯数字则直接转换,如果非数字内容则转换为NaN,空字符串将转换为0。
布尔值转数值: false-- >0 true—>1
空值转数值:null—>0
未定义转数值: NaN
var a ='234';
a= Number(a);
console.log(a);
console.log(typeof a);
方式四:
调用parseInt()把一个字符串转换成一个整数。parseInt()把字符串转换成浮点数。
parseInt()可以将字符串中有效的整数内容取出来。
var a= '234px';
var a=parseInt(a);
console.log(a); //a=234
cnsole.log(typeof a); number
Boolean类型强转
方式五:
调用Boolean()函数。
数字转换为Boolean,除了0和NaN是false,其余都是true。
字符串转换为Boolean,除了空串其余都是true。
null和undefined都会转换为false
var a= 70;
a=Boolean (a);
console.log(a); true
console.log(typeof a); boolean
运算符(操作符)
通过操作符可以对一个值或者多个值进行运算。
算术运算符:+ - * %
当对非number类型的值进行运算时,将会把值转换成number进行运算。
1.如果对两个值进行加法运算,会把两个字符串拼接成一个字符串并返回。
var a="天生" + "神力";
consol.log(a); //天生神力
2.任何值和字符串进行加法操作,都会把值转换成字符串之后进行拼接操作。
var a =true + "神力";
cosole.log(a); //true神力
任何值进行减法,乘法,除法操作,都可以转换成number。
%取模运算,除法取余运算。
一元运算符:只需要一个操作数
+正号:正号不会对我们的数值产生影响。
-负号:负号可以对数值进行负号取反。
正负号都可以将数值类型转换成number,原理和number()函数一样。
var a= 1+ "2"+3;
console.log(a); //123
console.log(typeof a); //string
var a= 1+ +"2" +3;
console.log(a); //6
console.log(typeof a); //number
自增和自减
自增:可以使变量在自身的基础上+1
运算符: ++
自增分为2种,a++和++a 对于原变量来说是没有区别的,都会使原变量的值+1
不同的是a++和++a的值不同:a++的值等于自增前的值,++a的值等于自增以后的值
var a = 1;
a= a+1;
console.log(a);
var a = 1;
a++;
console.log(a);
自减:可以使变量在自身的基础上-1
运算符: - -
var a = 1;
a --;
console.log(a);
var a = 1;
--a;
console.log(a);
逻辑运算符
!非:可以对一个值进行非运算,为任意数值进行两次非运算,可以转换为布尔值
&&与:可以对符号两边的值进行与运算并返回结果,两个值中只要有一个为false就返回false
||或:可以对符号两边的值进行或运算并返回结果,两个值中只要有一个为true就返回true
赋值运算
=等于:可以将右侧数值赋值给左侧变量
+=: a=a+5 可以转换为a+=5
-=: a=a-5 可以转换为a-=5
=: a=a5 可以转换为a*=5
/=: a=a/5 可以转化为a/=5
%=:a=a%5 可以转换为a%=5
关系运算符
通过关系运算符可以比较两个值之间的关系。
如果关系成立将会返回true,如果关系不成立将会返回false。
<小于 >大于 >=大于等于 <=小于等于
非数值比较时会将其转换为数值再比较
console.log(10>null) //true
任何值和NaN比较都返回false
console.log(10<NaN) //false
如果符号两侧的值都是字符串,它不会将其转换成数字进行比较,会分别比较字符串中字符的Unicode编码大小。
console.log("11"<"5"); //true
比较字符编码时是一个一个进行比较的,如果两位一样则比较下一位
相等运算符
运算符:===
用来比较两个值是否相等,如果相等返回true,不相等则返回false
当使用==来做比较时,如果值的类型不同,则会自动进行转换成相同类型,然后再比较。
undefined衍生自null,两者做两个等于判断时将会返回true
条件运算符(三元运算符)
语法:条件表达式?语句1:语句2
执行流程:首先对条件表达式进行求值,如果返回true,则执行语句1;如果返回false,则执行语句2
var a= 50;
var b= 43;
var c=64;
var max =a>b?(a>c?a:c):(b>c?b:c);
console.log(max); //64
Unicode编码:
输出编码:console.log("\u四位编码");
console.log("\u2620");