JavaScript基础教程之JavaScript运算符类型及用法
小职 2020-09-30 来源 : 阅读 752 评论 0

摘要:本篇介绍了JavaScript运算符类型及用法,希望对JavaScript相关学习有更深入的了解。

 本篇介绍了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";

}



关注“职坐标在线”公众号,免费获取最新技术干货教程资源哦!

本文由 @小职 发布于职坐标。未经许可,禁止转载。
喜欢 | 0 不喜欢 | 0
看完这篇文章有何感觉?已经有0人表态,0%的人喜欢 快给朋友分享吧~
评论(0)
后参与评论

您输入的评论内容中包含违禁敏感词

我知道了

助您圆梦职场 匹配合适岗位
验证码手机号,获得海同独家IT培训资料
选择就业方向:
人工智能物联网
大数据开发/分析
人工智能Python
Java全栈开发
WEB前端+H5

请输入正确的手机号码

请输入正确的验证码

获取验证码

您今天的短信下发次数太多了,明天再试试吧!

提交

我们会在第一时间安排职业规划师联系您!

您也可以联系我们的职业规划师咨询:

小职老师的微信号:z_zhizuobiao
小职老师的微信号:z_zhizuobiao

版权所有 职坐标-一站式IT培训就业服务领导者 沪ICP备13042190号-4
上海海同信息科技有限公司 Copyright ©2015 www.zhizuobiao.com,All Rights Reserved.
 沪公网安备 31011502005948号    

©2015 www.zhizuobiao.com All Rights Reserved

208小时内训课程