类型转换
1. Number
2. String
3. Boolean
4. undefined
5. null
String类型转换为Number类型:
纯数字的字符串 10 10
数字开头的字符串 10px NaN
其他字符串 “张三” NaN
Boolean类型转为Number类型:
true转为1
false转为0
null类型转为Number类型:
都转为0
undefined转为Number类型:
NaN
parseInt();将其他类型转换为整数类型
parsefloat();将其他类型转为浮点数
异同点:
parseInt()和Number()
parseInt()100px----->100
Number()100px----->NaN
parsefloat()和parseInt()
parseInt() 100.1px------>100
parsefloat() 100.1px----->100.1
转换布尔类型
Boolean()
0 -0 “ ” null undefined NaN false
以上这七种会转换为false
其他的都会转换true
转为字符串
string(num)什么都可以转
num.tostring()不可以转undefined和null
布尔类型转变为数值类型:
<script>
//将布尔类型转为数值类型
var flag = false;
//var num = Number(flag);//将flag转为数值类型
console.log(Number(flag));//1
console.log(typeof Number(flkag));//1
</script>
转为字符串类型:
<script>
// 转为字符串类型 toString() String()
var num = 10;
console.log(typeof num);//number
console.log(typeof num.toString())
console.log(typeof String(num))
var flag = true;
console.log(typeof flag); //Boolean
console.log(typeof flag.toString()) //
console.log(typeof String(flag))
var u= undefined;
// console.log(typeof u);
// console.log(typeof u.toString()); //undefined通过toString()转换不了
console.log(typeof String(u))
var n = null;
// console.log(typeof n); //Object
// console.log(typeof n.toString());//null通过toString()转换不了
console.log(typeof String(n))
</script>
字符串类型转换为字符串:
<script>
/* */
var str = '1000'; //纯数字字符串类型
//将str转为数值类型
var num1 = Number(str);
console.log(num1)//1000
console.log(typeof num1);//number 数值类
var str1 = '1000px'; //数字开头的字符串类型
//将str转为数值类型
console.log(Number("100px")); //NaN
console.log(parseInt("100px"));//100
console.log(parseInt("px100"));//NaN
var str2 = '冯俊豪'; //其他字符串类型
//将str转为数值类型
var num3 = Number(str2);
console.log(num3)//NaN
console.log(typeof num3);//number 数值类型
</script>
null类型和undefined类型:
<script>
var u = undefined;
var n = null;
// console.log(Number(u));//NaN
// console.log(typeof Number(u));//number
// console.log(Number(n));//0
// console.log(typeof Number(n));//number
// console.log(Number("100px")); //NaN
console.log(parseInt("100px"));//100
console.log(parseInt("px100"));//NaN
var num1 = parseFloat("12.3abc"); // 返回12,如果第一个字符是数字会解析知道遇到非数字结束
var num2 = parseFloat("abc123"); // 返回NaN,如果第一个字符不是数字或者符号就返回NaN
console.log(num1);
console.log(num2);
</script>
其他类型转变为布尔类型:
<script>
// 六种情况转为false。其他的全部转为true
console.log(Boolean(0));
console.log(Boolean(-0));
console.log(Boolean(null));
console.log(Boolean(undefined));
console.log(Boolean(NaN));
console.log(Boolean(""));
console.log(Boolean(false));
</script>
算数运算符:
"+"
"-"
"*"
"/"
"%"
"++"(自身加1)
"--"(自身减1)
a++和++a的区别:
a++先操作(输出操作和运算操作),后自身加1
++a先自身加1,后操作(输出操作和运算操作)
赋值运算符 :
"="
"+="
"-="
"*="
"/="
"%="
var a = 10;//声明一个变量a,将10赋值给a
a% = 30;//a+30等价于 a = 10%30
console.log(a)//将a+30重新赋值给a
比较运算符(关系运算符):
"<"
">"
"<="
">="
"=="
"!=="
"==="
"!=="
结果为布尔类型
==和===
==比较的是值 是否相等(不严格)
===比较的是值和类型 是否相等 (严格)
cosole.log('10'==10)//true只比较值是否相等
cosole.log('10'==10)//false只比较和类型是否一样
逻辑运算符
&&(同时,并且)特点:一假即假
||(或者 或 )特点:一真即真
!(取反) 特点:颠倒是非
cosole.log(3<2&&2>1);false
cosole.log(3<2||2>1);true
cosole.log(3<2||2>1||9>6||9>0);true
条件运算符(三目)
格式:关系表达式? 语句1: 语句2:
流程:当关系表达式结果为true时,执行语句1,为false,执行语句2
3>2?console.log("3大于2"):console.log("3小于2")
表达式
原始表达式:
原始表达式是表达式的最小单位————它不包含其他表达式
原始表达式分为字面量和变量
字面量:”123“ 12 true 10.2 ”kikb“
变量:var a = 10 ;
关系表达式:
使用关系运算符把两个表达式连接起来的式子,叫做关系表达式
下图是一个关系表达式
3>2 7==8 9<9
关系表达式的结果就是true和falsse