js查缺补漏——你不知道的那些事

一、String类型

  1. 字符串是不可变的,字符串一旦创建它们的值就不能改变,想改变某个变量保存的字符串,首先需要销毁原来的字符串,再用另一个包含新值的字符串填充该变量。所以当使用+拼接字符串的时候是创建一个新的字符串对象。
  2. 转换字符串的方法:
    a: toString() 一般不传参,如果传参可以传递输出数值的基数,即进制,null,undefined没有toString方法,所以当判断转换的值是否为null、undefined的时候,需要使用String()转换为“null”,“undefined”。
    b: 使用+号拼接字符串。

二、Object类型
Object的每个实例所具有的属性和方法:

  • constructor: 构造函数,保存着用于创建当前对象的函数。
  • hasOwnProperty(“属性名”) : 检查给定的属性在当前对象实例(不是对象原型)中是否存在。
  • isPrototypeof(object): 检查传入的对象是否是当前对象的原型。
  • propertyIsEnumerable(“属性名”): 检查给定的属性是否能使用for-in语句。
  • toLocaleString(): 返回对象的字符串表示,该字符串与执行环境的地区对应。
  • toString(): 返回对象的字符串表示。
  • valueOf(): 返回对象的字符串、数值或布尔值表示。

三、逻辑运算符

&& 和 || 都属于短路操作,如果第一个操作数能决定结果,那么就不会对第二个操作数求值了,逻辑与运算符 && 如果第一个值是false那这个结果一定是false,后面的都不需要看了。而逻辑或运算符 || 如果第一个值为true,则后面的也是不需要再看了。

js中常见的用法就是:
var flag = ss || sss ; 通过或运算符避免为变量赋值null或undefined

四、关于运算符
1.对于加运算符,如果想打印输出的结果是计算后的,需要加上圆括号。

console.log("sum is" + (a + b))

对于任何操作数与NaN的比较,结果都是false.

2.对于相等操作符, == 和 != 是强制转型,需要先转换数据类型再比较。而 === 和 !== 仅仅是比较,不转换数据类型。

以下是比较容易错的表达式判断:

表达式
NaN == NaNfalse
NaN != NaNtrue
null == undefinedfalse
“NaN” != NaNfalse
5 == NaNfalse
false == 0true
true == 1true
true == 2false
undefined == 0false
null == 0false
“5” == 5true
null === undefinedfalse

null 和undefined是属于类型相似的,所以判断是相等,而和数值0完全不同,所以是false.

3.逗号运算符多用于声明变量,还可用于赋值,总会返回表达式中最后一项的值。

其他常用的运算符还有很多,今天主要总结了几个不常用容易出错的点。

五、区分for循环
1.for-in 用来枚举对象的属性

for(var propertyName in obj) {
}

需要注意循环出的属性名顺序是不可预测的。
为了防止循环对象报错,一般需要先判断该对象的值是不是null或者undefined。

六、break,continue,流控制语句
break是中断循环不再执行。
continue是跳出当前循环。

switch语句和其他语言用到的不同,不仅可以用常量还可以用变量和表达式,不仅可以是数值还可以是字符串、对象等任何数据类型。

switch比较的时候使用的是全等运算符,不会发生类型转换。

七、关于函数
函数的返回值一般使用return进行返回值的操作。
注意:位于return后面的任何代码都不会执行。

return; 会返回undefined。
不带有返回值的return,一般用于需要提前中止函数执行而又不需要返回值的情况下使用。

函数的参数是通过arguments对象来访问这个参数数组,再传递给函数的每一个参数,arguments[0]可以通过这种形式获取参数。

通过arguments.length可以知道传递了几个参数。

arguments的值永远与对应命名参数的值保持同步。即修改arguments参数列表的值,对应的参数值会修改,内存空间不同但是会值同步。所有参数传递的都是值,不可能通过引用传递参数。

八、JavaScript没有重载。
因为不存在函数签名的特性,函数和变量都是以后定义的覆盖掉前面的方法去执行。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值