回顾Date.0402(类型转换、运算)
2019-04-02 本文已影响0人
Amy_酱哈
类型转换
隐式转换
显式转换
转换为Boolean类型:Boolean(xxx) ; !!xxx
-
数字类型转换为布尔类型: NaN 、0 为 false,其他为 true。
-
字符串类型转换为布尔类型:
- ‘ ’ 空字符串为 false;
- 其他都为 true。
- null 、undefined 类型转换为布尔类型:都为 false。
4.对象类型转换为布尔类型:所有对象都为 true。
转换为number类型:number(xxx)
- 布尔类型转换为数字类型:
- true为 1
- false为0
- 字符串类型转换为数字类型:
- 字符串里面是数字时直接转换为数字(数据类型为number)
- 字符串里面是其他时为NaN
-
noll 转为 0;
-
undefined 转为 NaN.
转换为string类型:变量 + ‘’ 、 String(num) 、num.toString()
- 直接给变量加上双引号,变成字符串: 变量 + ‘’;
2.对象 + ‘’ 时,类型为[object Object]。
算术运算
- "+ - * / %";
- 两个变量相加规则
- 两个数字相加
- 有一个变量是字符串时,+号的意思是连接
- NaN,null,undefined + 数字:
NaN + 20 = NaN; null + 20 = 20; undefined + 20 = NaN - 两个小数相加,有可能出现很多小数(先把小数变成整数再处理) : (1.210 + 7.610)/10
- 两个变量相减规则(同加)。
逻辑运算
1.逻辑非 ! :取反。
2.逻辑与 &&:
- 一假则假、全真才为真;
- 取值:
(1) 从左往右判断如果全为true就取最后一个为true的变量;
(2)如果有false,取运行到第一个false的值,之后的不再运算。
var boo = true;
var str = '10';
var num = 33;
var a = null;
var b = 0;
console.log(boo && num && a && str); //输出值为 null
console.log(str && b && boo && num);//输出值为 0
3.逻辑或 ||
- 一真则真,全假才为假
- 取值:
(1)为真:第一个为true取第一个,否则取第下一个为真变量;
(2)为假:去最后一个变量。
var boo = true;
var str = '10';
var num = 33;
var a = null;
var b = 0;
console.log(num || str || boo || a || b);//输出值为 33
console.log(b || str || boo || a || num);//输出值为 10
console.log(b || a || boo || num);//输出值为 true
console.log(b || a);//输出值为 33
一元运算
- i++ :先运算再自加1; ++i :先自加1再运算;
- i-- :先运算再自减1; --i :先自减1再运算;
运算符优先级:
() > 自加和自减 >算术运算 >关系运算(比较运算)> 逻辑运算 > 赋值运算
同级运算,从左到右执行