利用短路求值的特点,给变量进行赋值操作
实际项目中,一般使用短路赋值,给变量赋值默认值
原理:
如果 变量 有数据,就赋值变量存储数据本身
如果 变量 没有数据,或者数据会自动转化为 false ,赋值默认值
变量 = 变量 || 默认值
原理:
变量存储的数值,自动转化为 true , 第二个默认值不执行,给变量就赋值变量本身的数据
变量存储的数值,自动转化为 false , 第二个默认值执行,会给变量进行2次赋值,最终存储的是默认值
变量 = 变量 && 默认值
原理:
变量存储的数值,自动转化为 false , 第二个默认值不执行,给变量就赋值变量本身的数据
变量存储的数值,自动转化为 true , 第二个默认值执行,会给变量进行2次赋值,最终存储的是默认值
// 触发输入框,可以输入数据,存储在变量中
// 输入的数据,都会以字符串的形式存储在变量中
// 需要 -0 *1 /1 将数据转化为数值类型
var res = window.prompt('输入框') - 0 ;
// 短路赋值
// 逻辑运算符 逻辑或
// 第一个 表达式 是 res
// 如果 res 输入的是 空字符串 0 undefined 会 自动转化为 布尔值 false
// 如果 res 自动转化为 false , 意味着 逻辑或 第一个表达式的结果是 false
// 如果 第一个 表达式 结果是 false , 第二个 表达式 需要执行
// 等于 res || 100 res 和 100 都被执行了
// 等于 向 res 变量中 进行了 2次赋值操作
// 先赋值 res 本身 , 再 赋值 100
// 最终结果 res 中 存储 数值 100
// 效果相当于 默认值的效果
// 如果没有正确赋值,原始存储undefined 或者 赋值 空字符串没有内容 或者 转化为 0
// 赋值一个默认值 100
// 如果 res 有数值 数值 不是空字符串,不是0,不是undefined
// res || 100 res 会自动转化为 true
// 第一个表达式是 true , 逻辑或 的第二个 表达式 不会执行
// 等于 res || 100 只有 res 进行了赋值
// 给 res 赋值 res 本身
res = res || 100;
console.log(res);
Comments | NOTHING