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;
posted @ 2019-11-06 10:11  勾践  阅读(382)  评论(0)    收藏  举报