JS-Object静态方法与逻辑运算符


title: JS-Object静态方法与逻辑运算符
date: 2020-06-10 14:30:33
tags:
- JavaScripe查漏补缺

1,Object静态方法

一般情况下,常量对象的内部值也是可以改变的。

const HOST = {
    url: "https://zhoubb96.github.io/"
    port: 443
}
HOST.port = 80//此时可以修改,类似于指针常量指针不可变但是里面的内容可变。

如果同时要禁止对内容得修改,就用到了Object的静态方法

Object.freeze(HOST)
HOST.post = 80 //这条语句不生效,但是在非严格模式不会报错。
2,传值(基本量)与传地址(较大的空间)

在JS中,一般变量都是传值。而对象则是传地址,原因是对象(引用类型)所占空间比较大,重新开辟空间资源消耗太大。如果想传值就需要深拷贝。

3,关于null与undefined

一个变量在声明而又没有赋值的时候,就会出现null与undefined这两个概念。

如果变量是引用类型,显示null(空对象,null有值,且值为空)

如果变量是基本类型,显示undefined(无值)

4,使用严格模式提高代码质量

严格模式是向下约束(自身作用域与子作用域)

1,在没有声明变量的时候提示

2,在同一作用域重复声明的时候提示(主要是var,let等不开严格模式也会提示)

3,在占用系统关键词的时候提示

5,有特色的逻辑运算符(或和与在非布尔值运算时会返回原值)

非!

  • 非运算可以对一个布尔值进行取反,true变false false边true

  • 当对非布尔值使用!时,会先将其转换为布尔值然后再取反

  • 我们可以利用!来将其他的数据类型转换为布尔值

或||

  • 可以对符号两侧的值进行或运算

  • 只有两端都是false时,才会返回false。只要有一个true,就会返回true。

  • 或是一个短路的或,如果第一个值是true,则不再检查第二个值

  • ***对于非布尔值,它会将其转换为布尔值然后做运算,***并返回原值

  • 规则: 见true返原值, 巧妙利用该短路特性进行赋值。

​ 1.如果第一个值为***true,则返回第一个******原值***

​ 2.如果第一个值为***false,则返回第二个******原值***

let a = 0||5;//a最后的值为5
let b = -5||0;//b的值-5

与&&

  • &&可以对符号两侧的值进行与运算

  • 只有两端的值都为true时,才会返回true。只要有一个false就会返回false。

  • 与是一个短路的与,如果第一个值是false,则不再检查第二个值

  • ***对于非布尔值,它会将其转换为布尔值然后做运算,***并返回原值

  • 规则:见flase返原值,巧妙利用该短路特性进行赋值。

​ 1.如果第一个值为***false,则返回第一个******原值***

​ 2.如果第一个值为***true,则返回第二个******原值***

let a = 0&&5;//a最后的值为0
let b = -5&&0;//b的值-0
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值