Javascript 基础学习(五)js 的运算符
通过运算符可以对一个或多个值进行运算,并且一定有运算结果返回
算数运算符
算数运算符包括相加(+)、相减(-)、相乘(*)、相除(/)、取模(%)。任何值与字符串相加都会转换为字符串,做的是字符串连。除了与字符串做加法,当对非 Number 类型的值进行运算时,会将这些值转换为 Number 再运算。任何值和 NaN 做运算都得 NaN
//js里面不区分整数和小数
var j = 123;
alert(j/1000*1000);
// j/1000*1000 在java里面得到结果是 0
// 在js里面不区分整数和小数,123/1000=0.123 * 1000 = 123
//字符串的操作
var str = "456";
alert(str+1); //在java里面操作的结果是 4561 ,在js里面还是 4561
alert(str-1); //相减时候,执行减法的运算
//提示:NaN表示不是一个数字
一元运算符
正负号
//正号(+)表示正数
var a = 123;
a = +a;
console.log(a); /123
//负号(-)表示负数
var a = 123;
a = -a;
console.log(a); /-123
自增
自增可以使变量在原值的基础上自增1。
自增使用 ++。
自增可以使用 前++(++a)后++(a++)。
无论是++a 还是 a++都会立即使原变量自增1
不同的是++a和a++的值是不同的,++a的值是变量的新值(自增后的值), a++的值是变量的原值(自增前的值)
自减
自减可以使变量在原值的基础上自减1。
自减使用 --。
自减可以使用 前--(--a)后--(a--)。
无论是--a 还是 a--都会立即使原变量自减1。
不同的是--a和a--的值是不同的,--a的值是变量的新值(自减后的值),a--的值是变量的原值(自减前的值)
注意
对于非 Number 类型的值会先转换为 Number 再运算。typeof 运算符可以获得一个值的类型,它会将该值的类型以字符串形式返回。
var a = 123;
var result = typeof a;
console.log(typeof result); /string
逻辑运算符
非 !
对一个布尔值进行取反运算。如果对非布尔值进行运算,则会先转换为布尔值再取反
与 &&
两个值只要有一个为 false 则返回 false。只有两个值都为 true 才返回 true。对于非布尔值运算,如果两个值都为 true,则返回后边的原值,如果两个值中有 false,则返回靠前的 false。归纳以上两点,如果第一个值为 true,则必然返回第二个值,如果第一个值为 false,则直接返回第一个值。
或 ||
两个值只要有一个 true,就返回 true。如果两个值都为 false,才返回 false。对于非布尔值运算,如果第一个值为 true,则直接返回第一个值,如果第一个值为 false,则直接返回第二个值
赋值运算符
(=):可以将符号右侧的值赋值给左侧变量
(+=):a += 5 相当于 a = a+5
(-=):a -= 5 相当于 a = a-5
(=):a * = 5 相当于 a = a5
(/=):a /= 5 相当于 a = a/5
(%=):a %= 5 相当于 a = a%5
关系运算符
关系运算符用来比较两个值之间的大小关系的。分别有>,>=,<,<=。关系运算符的规则和数学中一致,用来比较两个值之间的关系,如果关系成立则返回true,关系不成立则返回false。如果比较的两个值是非数值,会将其转换为Number然后再比较。如果比较的两个值都是字符串,此时会比较字符串的Unicode编码,而不会转换为Number。
编码转换输出
//在字符串中使用转义字符输入 Unicode 编码,\u四位编码。
console.log("\u2620")
//在网页中使用 Unicode 编码,&#编码,这里的编码需要十进制
<h1>☠</h1>
相等运算符
(==)
相等判断左右两个值是否相等,如果相等返回true,如果不等返回false。相等会自动对两个值进行类型转换,如果对不同的类型进行比较,会将其转换为相同的类型然后再比较,转换后相等它也会返回true。
(!=)
不等,判断左右两个值是否不等,如果不等则返回true,如果相等则返回false。不等也会做自动的类型转换。
(===)
全等,判断左右两个值是否全等,它和相等类似,只不过它不会进行自动的类型转换,如果两个值的类型不同,则直接返回false。
(!==)
不全等,和不等类似,但是它不会进行自动的类型转换,如果两个值的类型不同,它会直接返回true。
特殊的值
null和undefined
由于undefined衍生自null,所以null == undefined 会返回true。
NaN
NaN不与任何值相等,即使它自身 NaN == NaN ,也会返回false。判断一个值是否是NaN,使用isNaN()函数
条件运算符
语法:条件表达式?语句1:语句2;。
先对条件表达式求值判断,如果判断结果为true,则执行语句1,并返回执行结果,如果判断结果为false,则执行语句2,并返回执行结果 。
运算符优先级
和数学中一样,JS中的运算符也是具有优先级的,比如 先乘除 后加减 先与 后或。具体的优先级可以参考优先级的表格,在表格中越靠上的优先级越高,优先级越高的越优先计算,优先级相同的,从左往右计算。优先级不需要记忆,如果越到拿不准的,使用()来改变优先级
Javascript 基础学习(五)js 的运算符的更多相关文章
- JavaScript基础学习(五)—其他引用类型
JavaScript定义了两个内置对象: Global和Math. 一.Global对象 1.URI编码方法 Global对象的encodeURI()和encodeURICompo ...
- JavaScript 基础学习(二)js 和 html 的结合方式
第一种 使用一个标签 <script type="text/javascript"> js代码; </script> 第二种 使用 script 标签,引入 ...
- JavaScript 基础学习1-day14
JavaScript 基础学习1 知识预览JavaScript概述二 JavaScript的基础三 JavaScript的对象BOM对象DOM对象实例练习js扩展 JavaScript概述 JavaS ...
- 48.javascript基础学习
javascript基础学习: http://www.w3school.com.cn/jsref/index.asp jS的引入方式: 1.行间事件:为某一个具体的元素标签赋予js内容,oncli ...
- javascript基础入门之js中的数据类型与数据转换01
javascript基础入门之js中的数据结构与数据转换01 js的组成(ECMAScript.BOM.DOM) js中的打印语句: 数据类型 变量 ...
- JavaScript 基础 学习 (四)
JavaScript 基础 学习 (四) 解绑事件 dom级 事件解绑 元素.on事件类型 = null 因为赋值的关系,所以给事件赋值为 null 的时候 事件触发的时候,就没有事件处理 ...
- JavaScript 基础 学习(三)
JavaScript 基础 学习(三) 事件三要素 1.事件源: 绑定在谁身上的事件(和谁约定好) 2.事件类型: 绑定一个什么事件 3.事件处理函数: 当行为发生的时候,要执行哪一个函数 ...
- JavaScript 基础 学习 (二)
JavaScript 基础 学习 节点属性 每一个节点都有自己的特点 这个节点属性就记录着属于自己节点的特点 1. nodeType(以一个数字来表示这个节点类型) 语法:节点.nodeT ...
- JavaScript 基础 学习 (一)
JavaScript 基础 学习 获取页面中的元素的方法 作用:通过各种方式获取页面中的元素 比如:id,类名,标签名,选择器 的方式来获取元素 伪数组: 长的和数组差不多,也是按照索引排 ...
- javascript基础入门之js中的结构分支与循环语句
javascript基础入门之js中的结构分支与循环语句 程序的结构①顺序结构:自上而下:②选择(分支)结构:多条路径,根据不同的条件,只执行其中一个:③循环结构:重复某些代码④配合特定的语句实现选择 ...
随机推荐
- svn和 android adt的 eclipse插件更新地址
下边这两个插件的更新地址是每次安装android开发环境时都能用到的,为了方便在这里记录一下. android adt: http://dl-ssl.google.com/android/eclips ...
- hihoCoder 1387 A Research on "The Hundred Family Surnames"
搬家一个月,庆祝一下 啪啪啪啪啪啪啪啪啪啪❀❀❀❀ 题目传送门 分析: 这什么奇奇怪怪的OJ,以前从来不知道的2333 以前只知道合并两个连通块时,其中一边直径端点为A,B,另一边为C,D D=max ...
- 个人第三次作业——结对编程 (姜玖林&于丁)
博客要求 Github项目地址:https://github.com/zhibihuayue/PairProgramming 作业地址 : https://www.cnblogs.com/cheris ...
- [NOI2005]维护数列(区间splay)
[NOI2005]维护数列(luogu) 打这玩意儿真是要了我的老命 Description 请写一个程序,要求维护一个数列,支持以下 6 种操作:(请注意,格式栏 中的下划线‘ _ ’表示实际输入文 ...
- Shell字符串比较相等、不相等方法小结【转】
#!/bin/sh #测试各种字符串比较操作. #shell中对变量的值添加单引号,爽引号和不添加的区别:对类型来说是无关的,即不是添加了引号就变成了字符串类型, #单引号不对相关量进行替换,如不对$ ...
- IDEA更换banner(娱乐专用)
1.佛祖保佑 永无bug _ooOoo_ o8888888o 88" . "88 (| -_- |) O\ = /O ____/`---'\____ .' \\| |// `. / ...
- 最大似然估计、n阶矩、协方差(矩阵)、(多元)高斯分布 学习摘要
最大似然估计 似然与概率 在统计学中,似然函数(likelihood function,通常简写为likelihood,似然)和概率(Probability)是两个不同的概念.概率是在特定环境下某件事 ...
- MySQL5.7 中的query_cache_size
摘自:http://jackyrong.iteye.com/blog/2173523 1 原理 MySQL查询缓存保存查询返回的完整结果.当查询命中该缓存,会立刻返回结果,跳过了解析,优化和执行 ...
- spring实战第二章小记-装配bean
时间:2020/02/06 一.思想 1.创建应用对象之间协作关系的行为通常称为装配,这也是依赖注入(DI)的本质. 对于上面这句话的个人理解:当我们在new一个对象时如果传入了别的对象作为参数(这个 ...
- 1、通过CP数据文件的方式恢复MySQL 从库 启动后报错:Last_IO_Errno: 1236:A slave with the same server_uuid/server_id as this slave has connected to the master;
1.问题: MySQL从库中查看主从状态: show slave status\G,发现出现IO的报错: Last_IO_Errno: Last_IO_Error: Got fatal error f ...