js中的相等与逗号运算符用法
/**
* 相等运算符 '==',相等则返回true,不等则返回false
* - 用 '==' 来比较两个值时,若值的类型不同,则会自动进行类型
* 转换,将其转换为相同的类型然后再进行比较。
*/
// 类型相同都是数字类型,直接比较
console.log(`1 == 1 为 ${1 == 1}`); // 1 == 1 为 true
// 类型不同,一个数字,一个字符串,会自动的将字符串 '1'
// 转换成数字为 1,再进行比较
console.log(`1 == '1' 为 ${1 == '1'}`); // 1 == '1' 为 true
// 字符串与布尔型进行比较,会先将左边的true转换成数字为 1,然后将右边
// 的字符串 '1' 转换成数字为 1,显然是相等的
console.log(`true == '1' 为 ${true == '1'}`); // true == '1' 为 true
// 类型不同,这种情况比较特殊,没有把 null 转换成数字进行比较
console.log(`null == 0 为 ${null == 0}`); // null == 0 为 false
// undefined 衍生自 null,两者做相等比较时是 true
console.log(`undefined == null 为 ${undefined == null}`); // undefined == null 为 true
// NaN 不和任何值相等,包括其本身
console.log(`1 == NaN 为 ${1 == NaN}`); // 1 == NaN 为 false
// NaN 与其自身比较为 false
console.log(`NaN == NaN 为 ${NaN == NaN}`); // NaN == NaN 为 false
// 可以用 isNaN() 函数来判断一个值是否是 NaN,是则返回true,
// 否则返回false。
var n1 = NaN;
console.log(`isNaN(n1) = ${isNaN(n1)}`); // isNaN(n1) = true
/**
* 不等运算符 '!=',不相等则返回true,相等则返回false
* - 用 '!=' 来比较两个值时,若值的类型不同,则会自动进行类型
* 转换,将其转换为相同的类型然后再进行比较。
*/
// 1与'1'比较
console.log(`1 != '1' 为 ${1 != '1'}`); // 1 != '1' 为 false
/**
* 全等运算符 '==='
* - 用来判断两个值是否全等,和相等类似,不同的是它不会做自动的类型转换
* 如果两个值的类型或者值不同,直接返回false,如果两个值的类型和值都相同,则
* 返回true。
*
* 不全等运算符 '!=='
* - 用来判断两个值是否不全等,和不等类似,不同的是它不会做自动的类型转换
* 如果两个值的类型或者值不同,直接返回true,如果两个值的类型和值都相同,则
* 返回false。
*/
// 值相等,但类型不同
console.log(`null === undefined 为 ${null === undefined}`); // null === undefined 为 false
// 值相等,但类型不同
console.log(`1 !== '1' 为 ${1 !== '1'}`); // 1 !== '1' 为 true
/**
* 条件运算符也叫三元运算符
* - 语法:
* 条件表达式 ? 语句1 : 语句2;
* - 执行流程:
* 条件运算符在执行时,首先对条件表达式进行求值,
* 如果该值为true,则执行语句1,并返回执行结果
* 如果该值为false,则执行语句2,并返回执行结果
* 如果条件表达式的求值结果是一个非布尔值,则会
* 将其转换为布尔值然后再运算
*/
// 布尔值
console.log(`1 > 2 ? true : false 结果为 ${1 > 2 ? true : false}`); // 1 > 2 ? true : false 结果为 false
// 非布尔值
console.log(`'hi' ? true : false 结果为 ${'hi' ? true : false}`); // 'hi' ? true : false 结果为 true
/**
* ',' 运算符
* - 可以用来分割多个语句,一般在声明多个变量时适用
*/
// 同时声明多个变量并赋值
var a, b = 'hello world', c = 1;
js中的相等与逗号运算符用法的更多相关文章
- JS中Array数组的三大属性用法
原文:JS中Array数组的三大属性用法 Array数组主要有3大属性,它们分别是length属性.prototype属性和constructor属性. JS操作Array数组的方法及属性 本文总结了 ...
- 小程序 js中获取时间new date()的用法(网络复制过来自用)
js中获取时间new date()的用法 获取时间: 1 var myDate = new Date();//获取系统当前时间 获取特定格式的时间: 1 myDate.getYear(); //获 ...
- js中push(),pop(),unshift(),shift()的用法
js中push(),pop(),unshift(),shift()的用法小结 1.push().pop()和unshift().shift() 这两组同为对数组的操作,并且会改变数组的本身的长度及 ...
- Js中获取时间 new date()的用法
Js中获取时间 new date()的用法 获取时间: var myDate = new Date();//获取系统当前时间 myDate.getYear(); //获取当前年份(2位) myDate ...
- 简述JS中 appy 和 call 的详细用法
Apply 和 Call 两个老生常言的方法,使用过程的一些细节还是有很大的异同,具体使用情况可以参照下面例子详细回顾一下. 区别和详解:js中call()和apply()的用法 1.关于call() ...
- JS 中一些高效的魔法运算符
这两天有同事说我挺久没更新文章了,不过最近一段时间确实有点忙,一直在忙着两个活动中心的改版,没什么时间来更新文章.今天终于抽空可以写一写. JavaScript 现在每年都会发一个新版本,里面也会新增 ...
- JavaScript基础&实战(2)js中的强制类型转换、运算符、关系运算符、逻辑运算符、条件运算符
文章目录 1.强制类型转换Number 1.1 代码 1.2 测试结果 2.进制表示 2.1 代码 2.2 测试结果 3.强制类型转换为Boolea 3.1 代码 3.2 测试结果 4.运算符 4.1 ...
- JS中break continue和return的用法?
在 break,continue和return 三个关键字中, break,continue是一起的,return 是函数返回语句,但是返回的同时也将函数停止 break和continue: 退出循环 ...
- js中获取时间new date()的用法
获取时间: var myDate = new Date();//获取系统当前时间 获取特定格式的时间: myDate.getYear(); //获取当前年份(2位) myDate.getFullYea ...
随机推荐
- 2018-8-10-如何使用-Q#
title author date CreateTime categories 如何使用 Q# lindexi 2018-08-10 19:16:51 +0800 2018-2-13 17:23:3 ...
- Flutter-tabbar切換
頂部tabbar切換 import 'package:flutter/material.dart'; import 'index_attendance_record.dart'; import 'in ...
- Codeforces Round #518 (Div. 1) Computer Game 倍增+矩阵快速幂
接近于死亡的选手没有水平更博客,所以现在每五个月更一篇. 这道题呢,首先如果已经有权限升级了,那么后面肯定全部选的是 \(p_ib_i\) 最高的. 设这个值为 \(M=\max \limits_i ...
- mysql查找表名
SELECT *FROM information_schema.TABLESWHERE 1=1 AND table_name LIKE '%order%' AND table_comment like ...
- JS谷歌浏览器断点调试
1.找到对应的文件 按F12打开网页调试工具,默认打开的是Elements,显示的是网页标签元素.选择Source,在左侧找到对应的js代码文件(这里是在page标签上找到的) 1.1.如何找到web ...
- 【Linux】关闭selinux
vi /etc/selinux/config 将SELINUX=enforcing改为SELINUX=disabled 设置后需要重启才能生效
- delphi按字节长度分割字符串函数(转)
此字符串分割函数用delphi编写,可以适应字符串中存在双字节字符和单字节字符. function TricheditEfm.SplitString(source:string;Sleng:Integ ...
- Golang操作MySQL的正确姿势
封装原因: 查看了很多网上提供的ORM类型的数据库操作,觉得比较麻烦,需要提前配置很多的表结构体,然后才能使用,对于数据表很多的项目就配置起来就比较麻烦,所以对golang的mysql包进行了外层包装 ...
- python中*args和**kargs得用法总结
前言: 一个很简单的函数说起: def Jiafa(x, y): z = x + y return z print(Jiafa(1,2)) 这个很简单,一看就知道输出等于3. 那下一个问题是,如果我要 ...
- vector代替数组
vector代替数组 1.声明一个int向量以替代一维的数组:vector <int> a;(等于声明了一个int数组a[],大小没有指定,可以动态的向里面添加删除). 2.用vector ...