1. 数据类型转换
1.1其他类型转为数字类型
1.1.1强制转换
Number(参数)函数
''输出0 ' '输出0 null输出0 false输出0 undefined输出NaN '数字+字母'输出NaN
console.log(Number(''),Number(''),Number(null),Number(false),Number(undefined),Number('1231bhi'));
parseInt(参数) 整数
parseFloat(参数) 浮点数(小数)
针对'数字'和'数字+字母'这两种类型,其他的输出都为NaN
let a1='12'
a1=parseInt(a1);
console.log(a1,typeof a1);
let a3='12hell0'
a1=parseFloat(a1);
console.log(a1,typeof a1);
1.1.2隐式转换
+'数字' '数字'*1 '数字'/1 '数字'-1 (加法运算无法转换数字类型)
console.log(''+12321);
1.2转换为字符串类型
1.2.1 强制转换
String(变量) 所有都能转换
变量.toString() null和undefined没有此方法
let c=123
console.log(String(c));
console.log(c.toString());
1.2.2 隐式转换
变量+'你好'(拼接转换为字符串)
console.log(c+'44');
1.3转换为布尔型(Boolean)
Boolean(变量) 输出结果为true或false
只有六个符号输出false
' ' null undefined false NaN 0
console.log(Boolean(''),Boolean(0),Boolean(false),Boolean(NaN),Boolean(null),Boolean(undefined));
2.运算符的使用
2.1 算术运算符
+ - * / %(取余)
++ 自增 -- 自减
前置:先运算,后赋值;后置:先赋值,后运算
+(正) -(负)
var a = 10,b=2;
a= a++ + --a - b-- + a++ + ++b - --a - a-- + a++ + -- b
console.log(a,b)
输出结果为: 20 1
2.2 比较运算符(关系运算符)
> >= < <= ==(判断是否等于,会转换数据类型) ===(判断是否全等于,不转换数据类型)
!=(不等于) !==(不全等)
console.log('5'==5);//true 判断是否等于,会转换数据类型
console.log('5'===5);//false 判断是否全等于,不转换数据类型
console.log('5'>15);//false 会转换数据类型,但是5<15;
console.log('5'>='15');//true 两边都是字符串,比较asciii码,一位一位的比;
console.log('5'!=5);//false 会转换数据类型
console.log('5'!==5);//true 会转换数据类型
console.log(NaN==NaN);//false NaN和谁都不等
console.log(null==0,null>-1);//false true null在运算中默认为0
console.log('hello'>'world');//false 比较ascii码
console.log(null==undefined);//true 相等
2.3 逻辑运算符
&&(与)
两边都是true才返回true ,否则返回false.
如果第一个返回值是假,后面不再执行,直接返回第一个操作结果,可能是false也可能是原值
如果第一个返回值是真,由第二个操作数来决定结果.
只有直接输入true或false,或者通过比较得到的返回值才会在最后输出true或false
console.log(true&&false);//false
console.log(true&&8>5);//true
//特殊情况
console.log(true&&'hello');//hello
console.log(true&&'hello'*2);//NaN
console.log(true&&8);//8
console.log(false&&8);//false
console.log(undefined&&8);//undefined
console.log(null&&8);//null
console.log([]&&8);//8
||(或)
两边都为false才返回false ,否则都为true
!(非)
逻辑非(!)也叫作取反符,用来取一个布尔值相反的值,如true的相反值是false
2.4 赋值运算符
= += -= *= /= %=
2.5 条件运算符
? :
条件表达式 ? 条件成立的返回的值1 :条件不成立的返回值2
判断工资是否大于7000,如果大于7000,应交税7000*0.12,否则胶水工资*0.12
let offer=prompt('请属入你的工资');
let jiaoshui=offer>7000?7000*0.12:offer*0.12;
alert(jiaoshui);
2.6 运算符优先级
下表按从最高到最低的优先级列出JavaScript运算符。具有相同优先级的运算符按从左至右的顺序求值。
运算符 | 描述 |
. [] () | 字段访问、数组下标、函数调用以及表达式分组 |
++ -- - ~ ! delete new typeof void | 一元运算符、返回数据类型、对象创建、未定义值 |
* / % | 乘法、除法、取模 |
+ - + | 加法、减法、字符串连接 |
> >>> | 移位 |
< >= instanceof | 小于、小于等于、大于、大于等于、instanceof |
== != === !== | 等于、不等于、严格相等、非严格相等 |
& | 按位与 |
^ | 按位异或 |
| | 按位或 |
&& | 逻辑与 |
|| | 逻辑或 |
?: | 条件 |
= oP= | 赋值、运算赋值 |
, | 多重求值 |
作者留言
其中的内容与c语言有不少的相似之处,知识很碎,有c语言基础的可以根据c语言进行部分知识的记忆,代码要经常打才能保证知识的记忆以及手法的熟练,记得勤加练习。