当前位置: 首页 > news >正文

重庆市建设和交通委员会网站移动端优化

重庆市建设和交通委员会网站,移动端优化,四川建委官网首页,上海学习网站建设1、其他值到字符串的转换规则? - Null和Undefined类型,null转化为 null ,undefined转化为‘undefined’ - Boolean类型,true转化为‘true’,false转化为 ‘ false’ - Symbol类型的值直接转换,但是只允许显示强制类…

1、其他值到字符串的转换规则?

- Null和Undefined类型,null转化为 'null ' ,undefined转化为‘undefined’

- Boolean类型,true转化为‘true’,false转化为 ‘ false’

- Symbol类型的值直接转换,但是只允许显示强制类型转换,使用隐式强制类型转换会产生错误。

强制类型转化:通过一些代码进行类型的转化,更精确地控制特定的数据类型转换例如:Number

隐式类型转化自动完成的类型转换,字符串和数字相加时,JavaScript 引擎会自动将数字转换为字符串,然后将它们连接在一起。

- Number类型的值直接转化。

- 对象:除非自定义的toString()方法,否则会调用对象的原型上的toString()来返回内部属性[object Object],如果对象有自定义的toString()方法,字符串转化时就会调用该方法并使用其返回值.

const obj = {name: "John",age: 30,gender: "male"
};console.log(obj.toString());  // [object Object]

2、 其他值到数字值的转化规则

- Undefined类型的值转化未NaN。

- Null类型的值转化为0.

- Boolean类型的值,true转化为1,false转化为0

- String类型的值转化,使用Numner函数进行转化,如果包含非数字值则转化为NaN,空字符串转化为0.

- 对象:包括数组,

    (1)会首先被转化为相应的基本类型值,如果返回的是非数字的基本类型值,则会将其强制转化为数字。

    (2)JS会自动调用valueOf()来获取一个原始值,如果获取到的值不是一个原始值,JS会继续调用对象的toString方法来回一个字符串,并将该字符串转化为数值。如果既没有valueOf方法也没有toString()方法,那么将会抛出异常。

原始值:Undefined、Null、Boolean、Number、String 和 Symbol。

const obj = {a: 10,toString: function() {return "20";}
};console.log(Number(obj));  // 20

toString() 方法是程序员自己定义的。在 JavaScript 中,大部分对象都继承了 Object 对象的 toString() 方法,该方法默认返回一个字符串 "[object Object]",并不能将对象用于数学运算或者进行类型转换。因此,当我们需要将一个对象转换为数值时,我们需要自定义对象的 valueOf() 或 toString() 方法来返回合适的值。

 3、其他值到布尔类型的值的转换规则?

undefined、null、false、0、NaN都是假值

4、Object.is() 与⽐较操作符 “ === ”、“== ” 的区别?

"==":不全相等,只比较数据,不比较类型,如果两边的类型不一致,会进行强制类型的转化再比较。

"===":全等,不做强制类型的转化,直接返回false,-0和+0相等,两个NaN不相等的。

Object.is:一般情况下和三等号的判断相同,比如-0和+0不再相等,两个NaN是相等的。

5、object.assign和扩展运算法是深拷贝还是浅拷贝,两者区别:

🔰 :深拷贝和浅拷贝:

     -  深拷贝:深拷贝是指对一个对象进行复制,复制出一个新的对象,并且新对象中的每一个属性都是通过递归复制而来的,即新对象和原对象没有任何引用关系

     -  浅拷贝:浅拷贝只会复制对象的基本属性,拷贝出来的新对象和原对象指向通过一内存地址。

object.assign和扩展运算是浅拷贝:
 

let Outobject = {inObject:{a:1,b:2}}
let newObject = {...Outobject}
newObject.inObject.a = 2
console.log(Outobject); //{inObject:{a:1,b:2}}
let Outobject = {inObject:{a:1,b:2}}
let newObject = Object.assign(Outobject)
newObject.inObject.a = 2
console.log(Outobject); //{inObject:{a:1,b:2}}

从代码发现,当newObject将inObject中的a的值改变时,OutObject中的值也发生变化,所以为浅拷贝。

🔰 :区别

1. Object.assign是将所有可枚举属性的值从一个或多个源对象复制到目标对象,如果目标对象已有该属性,则会覆盖该属性,只能拷贝对象的自身属性,可以复制继承属性,但只能复制可枚举的继承属性

2. 扩展运算符用于将一个对象展开为另一个对象的属性。它不复制继承的属性或类的属性但是它会复制ES6 的 symbols 属性

symbols :被用于定义对象的私有属性

 

http://www.ds6.com.cn/news/85301.html

相关文章:

  • 中小企业网站制作报价北京百度seo排名点击器
  • 深圳中国网站制作哪家公司好seo教程技术
  • 学校网站报价方案无锡营销型网站建设
  • wordpress里添加字体北京seo推广服务
  • asp.net网站项目网络营销整合推广
  • html5开发手机网站教程百度首页排名优化哪家专业
  • 延边网站建设公司网络推广人员是干什么的
  • cc域名 网站使用美国的空间需要备案吗查看今日头条
  • 专门做设计文案的网站九江seo优化
  • 域名估价网站友链交换
  • 整形医院网站源码下载电子商务网站建设教程
  • 深圳福田做网站公司哪家好google浏览器官方
  • 想注册一个设计网站吗1+x网店运营推广
  • asp网站数据库扫描百度广告大全
  • 网站建设大概多少费用关键词优化网站排名
  • 做外汇门户网站郑州关键词排名外包
  • 网站建设费专用票长春网站建设解决方案
  • 网站开发与管理所对应的职位及岗位seo顾问是什么职业
  • 软件服务网站设计费如何做分录怎样优化关键词到首页
  • 基于php的网站开发毕业论文雅虎搜索引擎入口
  • 新手怎样学校做网站十大搜索引擎排名
  • 网站名词排名怎么做常用的网站推广方法
  • 辽宁建设工程信息网官网查不良行为佛山seo
  • 单网页网站源码国内搜索引擎排行榜
  • 株洲市政府门户网站网店推广网站
  • wordpress 转移 问号seo外链论坛
  • 如何在mac系统安装wordpressseo顾问阿亮
  • 公司网站建设7个基本流程企业培训课程名称大全
  • 谷歌浏览器搜索引擎入口seo关键词外包
  • 贸易公司注册需要什么条件系统优化软件有哪些