发表于: 2017-05-08 00:18:59

1 871


今天做了什么事:

1.写关于复盘项目的ppt申请,总结了一下以前学过的知识,已经准备好进入复盘项目了。

2.有几点零碎的知识,放在下面跟大家分享一下。

明天要做什么事:

1.整理以前学的知识,

2.看书,读英语,写文章

遇到了什么问题:

1.暂无具体问题

收获:

1.以下是今天学到的js零碎知识

当心隐式的强制转换
JavaScript中,运算符+既重载了数字相加,又重载了字符串连接操作,这取决于其参数的类型,简单总结如下:
(1)如果两个操作数都是数值,执行常规加法运算
(2)如果有一个操作数是字符串,则将另一个操作数转换成字符串,再进行字符串的拼接
(3)如果有一个操作数是对象、数值或布尔值,如果 toString 方法存在并且返回原始类型,返回 toString 的结果。如果toString 方法不存在或者返回的不是原始类型,调用 valueOf 方法,如果 valueOf 方法存在,并且返回原始类型数据,返回 valueOf 的结果。其他情况,抛出错误。如果是undefined、null、NaN会调用String()函数取得字符串值’undefined’、’null’、’NaN’,再按照情形(2)进行运算
算数运算符-、*、/、和%在计算之前都会尝试将其参数转换为数字,简单总结如下:
(1)如果两个操作数都是数值,执行常规运算
(2)如果有一个数是NaN,则结果是NaN
(3)如果有一个操作数字符串、布尔值、null或undefined,则先调用Number()方法将其转换为数值,再进行运算
(4)如果有一个操作数是对象,如果 valueOf 存在,且返回原始类型数据,返回 valueOf 的结果。如果 toString 存在,且返回原始类型数据,返回 toString 的结果。其他情况,抛出错误。再按照上面规则进行运算。
因此,valueOf()和toString()方法应该被同时重写,并返回相同的数字字符串或数值表示,才不至于强制隐式转换时得到意想不到的结果。
  
逻辑运算符||、&&可以接受任何值作为参数,会将参数隐式的强制转换成布尔值。JavaScript中有6个假值:false、0、“”、NaN、null和undefined,其他所有的值都为真值。因此在函数中判断参数是否是undefined不能简单的使用if,而应该使用typeof:

function isUndefined(a){    if (typeof a === 'undefined'){    //或者a === undefined
        console.log('a is not defined')
    }
}

3.JS的布尔值。
JavaScript中有6个假值:false、0、“”、NaN、null和undefined,其他所有的值都为真值。

4.判断js参数的类型|—最佳实践
在函数中判断参数是否是undefined不能简单的使用if,而应该使用typeof:



返回列表 返回列表
评论

    分享到