一、三元运算符
(一)语法一:直接执行程序
// 通过输入框输入数据
var num = Number( window.prompt('请您输入数据') );
// if语句
if( num % 2 === 0 ){
console.log( `您输入的数值${num}是偶数` );
}else{
console.log( `您输入的数值${num}是奇数` );
}
表达式 ? 程序1 : 程序2 ;
- 表达式结果是
true
,执行程序1
- 表达式结果是
false
,执行程序2
num % 2 === 0 ? console.log( `您输入的数值${num}是偶数` ) : console.log( `您输入的数值${num}是奇数` ) ;
执行逻辑和简单的if语句完全相同,使用方法非常灵活,实际项目中会经常使用
(二)语法二:给变量赋值
var 变量 = 表达式 ? 数值1 : 数值2 ;
- 当 表达式 结果是
true
给变量赋值数值1
- 当 表达式 结果是
false
给变量赋值数值2
// 当 num % 2 === 0 结果是true ,给变量res赋值存储字符串'偶数'
// 当 num % 2 === 0 结果是false,给变量res赋值存储字符串'奇数'
var res = num % 2 === 0 ? '偶数' : '奇数' ;
console.log( res );
console.log( `您输入的数值 ${num} 是 ${ res }` );
(三)语法三:模板字符串解析
${ 表达式 ? 数据1 : 数据2 }
;
- 当表达式结果是
true
,在模板字符串中三元运算符的解析结果是数据1
- 当表达式结果是
false
,在模板字符串中三元运算符的解析结果是数据2
// 在模板字符串中,直接解析三元运算符
// 如果num % 2 === 0结果是true,在模板字符串中解析的结果是数据1字符串'偶数'
// 如果num % 2 === 0结果是false,在模板字符串中解析的结果是数据2字符串'奇数'
console.log( `<h1>您输入的数值${num}是${ num % 2 === 0 ? '偶数' : '奇数' }</h1>` );
二、比较运算符
比较运算符: > < >= <= == === != !==
注意:
比较运算符的执行结果一定是
布尔类型
在计算机程序中,比较运算符只能同时触发执行
一个
比较条件
说明:
在数学中有 5 < x < 10 这样的语法形式,意思是 x 大于 5 并且 x 小于 10 ,同时执行的是两个比较运算符的判断,在计算机程序中不能这样去定义
如果需要同时触发执行多个判断条件,需要使用逻辑运算符配合
(一)等于判断( == )
- 等于判断(
宽松比较
)- 判断运算符两侧数据的数值是不是相同
注意:
- 只判断数值,
不判断数据类型
,也就是数据类型可以不同- 所谓的数值JavaScript有一套自己的判断逻辑,这个判断逻辑
非常复杂(混乱)
实际项目中基本不用
// JavaScript程序认为数值类型的100, 表示的数据和字符串'100'表示的数据是相同的
console.log( 100 == '100' ); // true
console.log( 1 == true ) ; // true
console.log( '1' == true ) ; // true
console.log( 1 == 'true' ) ; // false
console.log( true == 'true' ) ; // false
(二)全等判断(===)
- 全等判断(
严格比较
)- 判断运算符两侧
数据数据类型
和数值
必须都相等- 也就是数据类型和数值必须同时相等,结果才是
true
// 数值100 和 字符串'100' 数据类型不同 结果是 false
console.log( 100 === '100' ) ;
// 数值100 和 数值100 数据类型相同 数值相同 结果是 true
console.log( 100 === 100 ) ;
// 整数和浮点数的数据类型都是数值类型
// 浮点数和整数比较判断时,如果浮点数小数部分都是0, 就认为和整数数值相同
console.log( 100 === 100.00000 ) ; //true
(三)不等和不全等
!= 不等
判断原则和 == 等于相同,判断结果和 == 相反
也就是 == 判断结果如果是true,!= 的判断结果是false
也就是 == 判断结果如果是false,!= 的判断结果是true
!== 不全等
判断原则和 === 全等相同,判断结果和 === 相反
也就是 === 判断结果如果是true,!== 的判断结果是false
也就是 === 判断结果如果是false,!== 的判断结果是true