摘要:本篇介绍了JavaScript运算符类型及用法,希望对JavaScript相关学习有更深入的了解。
本篇介绍了JavaScript运算符类型及用法,希望对JavaScript相关学习有更深入的了解。
标题JavaScript运算符
算数运算符 + - * / %
1、 数值的+ , - ,* , / , %(取模)和数学运算完全相同
2、 小数点运算时会产生误差
3、 - * / % 都是隐式转换成数值,不论有没有字符
+ 运算
1
1、 如果是字符和非字符相加,则会自动将非字符隐式转换成字符 String() 此时+为拼接符首尾相连
2、 数值 + NaN = NaN
3、 true + false = 1
4、 如果一侧是布尔值,重要是另一侧值,会根据另一侧转换
5、 如果两测都没有字符或者数值,就会都转换为数值运算
6、 布尔值一旦遇到对象都会隐式转换为字符相加
true+ {a:1}结果为true[object Object]
7、 true+[]或true+null结果为1
- * / % 都是隐式转换成数值,不论有没有字符
1
赋值运算符 += -= *= /= %=
看到一个=号时,就是表示将等号右侧的结果赋值给等号左侧,并且返回一个值
在元数据的基础上进行累加 累减等操作,得到计算后的新值,原数据也会发生改变
a += 2; 等价于 a = a+2; 其中2为布长
连续取模无意义
一元运算符
a++ <=> a=a+1 a为数值的情况下,一元运算符使用时会全部隐式转换为数值进行计算
++a与a++的区别:运算后a的值没有区别
++a是先自增运算,再使用返回a的值
a++是先使用返回a的值,再自增运算
var a=2;
1
var y=a++;
console.log(y,a);——2,3
var y=++a;
console.log(y,a);——3,3
var a=“10.35”;
a=a-0;
console.log(a);——10(数值10)
快速转换为数值型
a-=0;快速转换为数值型
1
var a=10;
a=a+"";
console.log(a);——10(字符10)
快速转换为字符型
a+="";快速转换为字符型
1
关系运算符 > >= < <= == != ===
关系运算符返回一个布尔值
判断,比较时使用
隐式转换内容为数值,如果都是字符,则通过ASCII转换成编码值,再比较
没办法比较时,结果为 false
null和undefined特殊都没有值 不和其他值进行比较
console.log(null == undefined);——true
console.log(0 == null);——false null是用来切断引用关系的
console.log("" == 0);——true空字符串会隐式转换成数值 0
console.log("" == false); ——true
console.log(0 == false); ——true
console.log(![] == false); ——true![] 优先将[]看做对象,所以[]就是true ,取反后变成false
console.log([] == false); ——true数组比较时,如果比较布尔值,优先将数组转换为字符串,再比较
console.log(![] == []);——true
console.log(" " == true); ——false空格字符串,布尔值转换为字符串console.log(2 == true); ——false布尔值转换为数值
console.log(undefined == false); ——false不能转换为undefined,所以不相同
console.log(null == false); ——false不能转换为null,所以不相同
console.log({a:1} == true); ——false不能转换为对象,所以不相同
console.log(NaN == NaN);——false非数值永不等
console.log(isNaN(Number(“a”)));判断是否是数值型的方法
console.log(“undefined” == undefined);——false
console.log(“null” == null); ——false
console.log("" == null); ——false
console.log("" == undefined); ——false
console.log("[object Object]"=={a:1});——true
console.log({a:1}.toString());——[object object]
console.log([“a”].toString())——a
console.log(“a” == [“a”]);——true数组转换为字符串
console.log(“3” == true);——false字符串和布尔值比较,布尔值转字符串
console.log(3 == true);——false数值和布尔值比较,布尔值转换为数值
当字符类型和引用类型比较时,优先将引用类型执行toString()转换为字符类型
isNaN() 用来判断是不是非数值
返回值 true => 非数值
false => 数值
!==(绝对不等) 和 === (绝对相等)都不会隐式转换
===
使下列函数能运行的a
1、 if(!a){
}——"",undefined,0,null,false,NaN
1
2、 if(a==false){
}—— 0 "" false
1
3、 if(a==undefined){
}——null undefined
1
4、 if(a===undefined){
}——undefined
1
Object.is类似于===
console.log(Object.is(“3”,3));——false
console.log(Object.is(3,3));——true
console.log(Object.is(NaN,NaN));——true
console.log(Object.is([], [])�——false
==是否相等 其实是由valueOf方式决定的,在此不做详细解释
if(a==1 && a==2 && a==3){
console.log("aaa");
}
1
2
3
逻辑运算符&& || !
&&
一假即假
遇到第一个条件为假,则停止后续的判断,返回其假值,否则则一直运行到最后,若最后一个条件为真,则返回该值
true && true =true 返回最后一个值
true && false =false 返回false对应的值
false && true =false 返回false对应的值
false && false =false 返回第一次遇见false对应的值
||
一真即真
遇到第一个条件为真,则停止后续的判断,返回其真值,否则则一直运行到最后,若最后一个条件为假,则返回该值
true || true =true; 第一个遇到true的对于值
true || false =true; 返回true对应的值
false || true =true; 返回true对应的值
false || false =false 返回最后一个false对应的值
!
遇到! 优先将后面的内容先转换布尔值再取反
简单案例:
1、点击按钮实现反选(创建两个div,ID分别为bn0和bn1)
var bn0=document.getElementById(“bn0”);
var bn1=document.getElementById(“bn1”);
bn0.οnclick=function(){
bn1.checked=!bn0.checked;
}
2、实现点击按钮html背景色改变(创建一个按钮,ID为bn0)
document.documentElement HTML标签
var bool=false;
var bn0=document.getElementById(“bn0”);
bn0.οnclick=function(){
bool=!bool;
if(bool){
document.documentElement.style.backgroundColor="#000000";
else{
document.documentElement.style.backgroundColor="#FFFFFF";
}
关注“职坐标在线”公众号,免费获取最新技术干货教程资源哦!
您输入的评论内容中包含违禁敏感词
我知道了
请输入正确的手机号码
请输入正确的验证码
您今天的短信下发次数太多了,明天再试试吧!
我们会在第一时间安排职业规划师联系您!
您也可以联系我们的职业规划师咨询:
版权所有 职坐标-一站式IT培训就业服务领导者 沪ICP备13042190号-4
上海海同信息科技有限公司 Copyright ©2015 www.zhizuobiao.com,All Rights Reserved.
沪公网安备 31011502005948号