js运算符浅析
什么是运算符?
连接两个或多个操作数(某个值,表达式)之间的符号。
运算符的分类:
1. 赋值运算符(=)
将右边的值赋给左边。
var x = 10;
var y = x;
console.log(x); //10
console.log(y; //10
2. 算术运算符(+,-,/,*,%)
注意:
2.1 在做除法是,若是有无限循环的小数,就会取小数的近似值
var x = 10;
console.log(x/3); //3.3333333333333335
2.2 当字符串与数值类型进行算术运算时,除了加号(+)是用来做字符串的拼接外,其余的都是将字符串转换为number类型,在做算术运算,如果字符串不能转换成数字时,输出结果为NaN。
var x = 10;
var y = "hello";
console.log(x+y); //10hello
console.log(x-y); //NaN
2.3 boolean与number类型做运算时,boolean会自动转化成number类型,false-->0,true-->1。
var x = 10;
var flag = true;
var flag1 = false;
console.log(x+flag); //11
console.log(x-flag1); //10
2.4 字符串与任何类型进行“+”号运算都是字符串的拼接。
var num = 10;
var str ="hello";
var flag = false;
var nul = null;
var unde = undefined;
var obj = {
name : "jack",
age : 23,
sex : "男"
};
console.log(str + num); //hello10
console.log(str + flag); //hellofalse
console.log(str + nul); //hellonull
console.log(str + obj); //hello[object Object]
console.log(str + unde); //helloundefined
console.log(str + str); //hellohello
3. 一元运算符(++,--)
a++,先赋值,在自加1
++a,先自加1,在赋值
a--,先赋值,在自减1
--a,先自减1,在赋值
var num1 = 1;
var num2 = 3;
var num3 = 5;
var num4 = 7;
console.log(num1++); //1
console.log(++num2); //4
console.log(num3--); //5
console.log(--num4); //6
4. 比较运算符(<,<=,>,>=,==,!=,===,!==)
在用比较运算符是,返回的值一定是boolean值。
==:等于-----只比较内容,只要内容相等,就返回true,才会返回true,否则就返回false。
===:完全等于-----不仅比较内容,还比类型,只有内容和类型都相等时,才会返回true,否则就返回false。
var num1 = 1;
var num2 = 3;
console.log(num1 < num2); //true
console.log(num1 >= num2); //false
console.log(num1 != num2); //true
5. 逻辑运算符:与,或,非(&&,&,!,||,|)
其中与或有两种与或,分别为长路与或(&&,||),短路与或(&,|),长路与短路的区别在于,短路先执行逻辑运算符左侧部分,符合要求就输出逻辑运算结果,不再执行右侧部分;而长路不
管左侧是否符合要求,它都会执行右侧部分。
与(&&,&):当所有表达式都返回true时,结果才返回true,只要有一个表达式返回false,那么结果就为false。一假为假
非(||,|):只要有一个表达式返回true,结果就返回true,只有所有的表达式都返回false时,结果才为false。一真为真
var num = 10;
var str = "10";
if (num === str || num == str){
console.log("相等"); //相等
}
6. 算术赋值运算符(+=,-=,*=,/=,%=)
+=:就相当于num = num + num1
var num = 10;
var num1 = 2;
console.log(num += num1); //12
console.log(num -= num1); //10
console.log(num *= num1); //20
console.log(num /= num1); //10
console.log(num %= num1); //0
7. 三元运算符(三目运算符,条件运算符)
条件?表达式1:表达式2
当条件为true时,执行表达式1;当条件为false时,执行表达式2。
var num = 10;
var num1 = 2;
num == num1?console.log("执行表达式1"):console.log("执行表达式2"); //执行表达式2
js运算符浅析的更多相关文章
- JS运算符
JS运算符: 使用的运算符的时候不需要声明变量,运算符非变量:1.算术运算符 + - * / % (%为取余数运算符) (自增运算符++) (自减运算符 --) + 运算符作用:1.数值相加 2.字符 ...
- js 运算符优先级
在看jquery源码,仔细看入口函数的时候,有点懵了.看到与或.多重三目,傻傻的分不清,就代码仔细的区分下运算符优先级,以前都是呼呼的飘过.看来任何一个细节都不能忽略,不然效率极低.. !functi ...
- js运算符单竖杠“|”的用法和作用及js数据处理
js运算符单竖杠“|”的作用 很多朋友都对双竖杠“||”,了如指掌,因为这个经常用到.但是大家知道单竖杠吗?今天有个网友QQ问我,我的 javascript实用技巧,js小知识 , 这篇文章里面,js ...
- js值类型转换(boolean/String/number),js运算符,if条件,循环结构,函数,三种弹出框
js值类型转换 number | string | boolean boolean类型转换 num = 0; var b1 = Boolean(num); console.log(b1) 转化为数字类 ...
- js运算符的一些特殊应用
作者: 小文 来源: http://www.cnblogs.com/daysme/ 时间: 2017/3/2 17:21:03 本文集合了了js运算符的一些特殊应用. js位运行符的运用. js运算符 ...
- js课程 2-6 js如何进行类型转换及js运算符有哪些
js课程 2-6 js如何进行类型转换及js运算符有哪些 一.总结 一句话总结: 1.所有类型->布尔类型(为假的情况)有哪些(6种)? 1)字符串('')2)整型(0)3)浮点型(0.0)4) ...
- js 运算符的执行顺序
js 运算符的执行顺序 js 运算符优先级 Operator Precedence 下表从最高(21)到最低(1)优先顺序排列 left-to-right 从左到右 / 先左后右 right-to-l ...
- 《JavaScript高级程序设计》学习笔记(2)--JS运算符详解
欢迎关注本人的微信公众号"前端小填填",专注前端技术的基础和项目开发的学习. 思维导图 前面对JS的运算符的操作很多细节的东西没有提及,今天给大家分享一张网上找的思维导图,对这一部 ...
- 聊聊js运算符 ‘与(&&)’和‘ 或(||)’
一,先来几个问题,看给位能都全部答对. var objA1 = {x:1}; var objA2 = {x:2}; var resultA = objA1 && objA2; //请问 ...
随机推荐
- C++自己实现一个String类
C++自己实现一个String类(构造函数.拷贝构造函数.析构函数和字符串赋值函数) #include <iostream> #include <cstring> using ...
- E: Unable to locate package clang-7 E: Unable to locate package clang++-7 E: Couldn't find any package by regex 'clang++-7'
我的系统是Debian 9.8, 然后在装下面这两个包的时候老是提示找不到.然后再github上一问,过了几分钟就有大佬回复了,而且亲测有效 ~$ sudo apt-get -y install cl ...
- Pytorch--Dropout笔记
dropout常常用于抑制过拟合,pytorch也提供了很方便的函数.但是经常不知道dropout的参数p是什么意思.在TensorFlow中p叫做keep_prob,就一直以为pytorch中的p应 ...
- 【译】索引进阶(八):SQL SERVER唯一索引
[译注:此文为翻译,由于本人水平所限,疏漏在所难免,欢迎探讨指正] 原文链接:传送门. 在本章节我们检查唯一索引.唯一索引的特别之处在于它不仅提供了性能益处,而且提供了数据完整性益处.在SQL SER ...
- Java基础14-缓冲区字节流;File类
作业解析 阐述BufferedReader和BufferedWriter的工作原理, 是否缓冲区读写器的性能恒大于非缓冲区读写器的性能,为什么,请举例说明? 答: BufferedReader对Rea ...
- 从基本理解到深入探究 Linux kernel 通知链(notifier chain)【转】
转自:https://blog.csdn.net/u014134180/article/details/86563754 版权声明:本文为博主原创文章,未经博主允许不得转载.——Wu_Being ht ...
- 网站robots.txt & sitemap.xml
1. 如何查看网站的robots.txt 网址/robots.txt, 比如小米 https://www.mi.com/robots.txt sitemap.xml
- nginx conf_ctx ****
http://blog.chinaunix.net/uid-27767798-id-3840094.html 断断续续看完了,还是没有全部清晰
- git(windows)
windows下比较比较好用的git客户端: 1. msysgit + TortoiseGit(乌龟git) 2. GitHub for Windows 3. Git Extensions
- OpenCV-Python:车道检测
任务: 一共要完成两项任务: 1. 在所提供的公路图片上检测出车道线并标记 2. 在所提供的公路视频上检测出车道线并标记 方案: 要检测出当前车道,就是要检测出左右两条车道直线.由于无人车一直保持在当 ...