利用短路求值的特点,给变量进行赋值操作

实际项目中,一般使用短路赋值,给变量赋值默认值

原理:
如果 变量 有数据,就赋值变量存储数据本身
如果 变量 没有数据,或者数据会自动转化为 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);

一沙一世界,一花一天堂。君掌盛无边,刹那成永恒。