1. 首页
  2. SEO百科
  3. Web前端

挑战常规–不要使用||赋予默认值基础知识教程_菜鸟指南

设置默认值function doSomething(s)
{s=s||”abc”;console.log(s);
}这是被广泛流传的js技巧之一,这种编码应该说是很坏的习惯。||的问题js是一种弱类型的编程语言,代表着传入的变量并不清楚作为何种类型使用。function doSomething(String s)
{}这样的定义在js是不存在的,对js来说传

挑战常规–不要使用||赋予默认值基础知识教程

设置默认值

function doSomething(s)
{
    s=s||"abc";
    console.log(s);
}

这是被广泛流传的js技巧之一,这种编码应该说是很坏的习惯。

挑战常规--不要使用||赋予默认值基础知识教程_菜鸟指南

||的问题

js是一种弱类型的编程语言,代表着传入的变量并不清楚作为何种类型使用。

function doSomething(String s)
{

}

这样的定义在js是不存在的,对js来说传入的任意参数都应该考虑不同类型的结果,而不是单单考虑一种情况。若传入0、false等,||所要实现默认值的功能完全错误的

console.log(0||"a"); //结果为a
console.log(false||"a"); //结果为a

正确方法

应该使用if null(更严格来讲if undefined)

function doSomething(s)
{
    if(s==null)
    {
        s="abc";
    }
}

或者,ES6下

function doSomething(s="abc")
{
  
}

来自:https://www.cnblogs.com/loveheihei/archive/2019/02/23/10422938.html

海计划公众号