程序地带

js运算符


5. 运算符
1. 一元运算符:只有一个运算数的运算符
++ -- , +(正号) -(负号)
* ++ --:自增(自减)
* ++(--) 在前,先自增(自减),再运算
* ++(--) 在后,先运算,再自增(自减)
* +(-):正负号
* 注意:在JS中,如果运算数不是运算符所要求的类型,那么js引擎会自动的将运算数进行类型转换。
* 其他类型转number:
* string转number:按照字面值转换。如果字面值不是数字,则转为NaN(不是数字的数字)
* boolean转number:true转为1,false转为0
2. 算术运算符
+ - * / % ...
3. 赋值运算符
= += -= ...
4. 比较运算符
> < >= <= == ===(全等于)
5. 逻辑运算符
&& || !
6. 三元运算符
?:表达式
* 语法:
* 表达式?值1:值2;
* 判断表达式的值,如果是true则取值1,如果是false则取值2;
<!--字符串转数字-->
var b = +"123"
alert(typeof(b))
alert(b+1)
var b = +"abc";
alert(typeof(b))
alert(b)
alert(b+1)
var b = +"123abc";
alert(typeof(b))
alert(b)
<!--boolean转number-->
var flag = +true;
var f2 = +false;
document.write(typeof(flag)+"<br>"); //number
document.write(flag+"<br>"); // 1
document.write(f2)+"<br>"); // 0
<!--算术运算符-->
var a = 3;
var b = 4;
document.write(a+b+"<br>");
document.write(a-b+"<br>");
document.write(a*b+"<br>");
document.write(a/b+"<br>");
document.write(a%b+"<br>");
<!--比较运算符
* 比较方式
1. 类型相同:直接比较
* 字符串:按照字典顺序比较。按位逐一比较,直到得出大小为止。
2. 类型不同:先进行类型转换,再比较
* ===:全等于。在比较之前,先判断类型,如果类型不一样,则直接返回false
-->
document.write((3 > 4) + "<br>");
document.write(("abc">"acd") + "<br>");
document.write(("122"<123) + "<br>"); //true
document.write(("122"==122) + "<br>"); //true
document.write(("122"===122) + "<br>"); //false
<!-- 逻辑运算符:
&&:与(短路的效果)
||:或(短路的效果)
!:非
* 其他类型转boolean:
1. number:0或NaN为假,其他为真
2. string:除了空字符串(""),其他都是true
3. null&undefined:都是false
4. 对象:所有对象都为true
-->
var flag = true;
document.write(flag+"<br>");
document.write(!flag+"<br>");
<!--number转boolean-->
var num = 3;
var num2 = 0;
var num3 = NaN;
document.write(!!num+"<br>");
document.write(!!num2+"<br>");
document.write(!!num3+"<br>");
<!--string转boolean-->
var str1 = "abc";
var str2 = "";
document.write(!!str1+"<br>");
document.write(!!str2+"<br>");
<!--null&undefined转boolean-->
var obj = null;
var obj2;
document.write(!!obj+"<br>");
document.write(!!obj2+"<br>");
<!--null&undefined转boolean-->
var date = new Date();
document.write(!!date+"<br>");
if(obj != null){//防止空指针异常
alert(123);
}
if(obj != null && obj.length>0){//防止空指针异常(字符串)
}
<!--js中可以这样定义,简化书写-->
if(obj){//防止空指针异常
alert(111);
}
<!--三元运算符-->
var a = 3;
var b = 4;
var c = a>b?1:0;
alert(c);

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.csdn.net/qq_44336097/article/details/109757372

随机推荐

阿里云云效何勉:云原生是“精益实践”的最佳助力

阿里云云效何勉:云原生是“精益实践”的最佳助力

1月15日,国内知名“精益产品开发”研究和实践者、阿里云云效资深技术专家何勉在阿里云《云计算情报局》线上直播栏目中,分享其对研发新模式的最新思考,提出“下一代...

阿里云技术 阅读(947)

App开发创业必须了解的三个问题

App开发创业必须了解的三个问题

随着国内经济发展,再加上移动互联网技术的不断发展,人们越来越习惯app存在于生活的方方面面。因此,也有越来越多的创业者加入到app开发创业大潮中来。app开发...

dialogs 阅读(453)

加密的病例单 简单c版

这道题目单纯就是麻烦。倒着着输出和大小写转换,已经后退三位要注意到xyz如果ASCII码后退三位的就到别的字符去了#include<stdio.h>#include<s...

alongwaywith 阅读(718)

2021-01-19

我想问下各位,mysql二级考试的操作题用dos界面答题和wampserver的phpmyadmin可视化窗口答题都行吧...

qq_45906567 阅读(711)