博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
关于""创建字符串和new String创建字符串
阅读量:7035 次
发布时间:2019-06-28

本文共 1118 字,大约阅读时间需要 3 分钟。

笔试的时候总会遇到string 和 new String相关的问题,汇总一下

var s1 = 'abc'var s2 = String('abc')var s3 = new String('abc')var s4 = new String('abc')console.log('s1 == s2', s1 == s2)  //trueconsole.log('s1 === s2', s1 === s2) // trueconsole.log('s1 == s3', s1 == s3)  //trueconsole.log('s1 === s3', s1 === s3) //falseconsole.log('s2 == s3', s2 == s3)   //trueconsole.log('s2 === s3', s2 === s3) //falseconsole.log('s3 == s4', s3 == s4)  //falseconsole.log('s3 === s4', s3 === s4)  //false

浏览器中运行截图如下:

图片描述

上述字符串创建的三种形式,用“”创建是字符串字面量(通过单引号或者双引号定义)和直接调用String(不用new)生成的字符串都是基本字符串(可以理解为两种方式一样),使用new String创建的字符串为字符串对象。

JavaScript会自动将基本字符串转换为字符串对象,只有将基本字符串转化为字符串对象后才可以使用字符串对象的方法。当基本字符串需要调用一个字符串对象才有的方法或者查询值的时候(基本字符串没有这些方法),JavaScript会自动将基本字符串转化为字符串对象并且调用相应的方法或执行查询。

当使用eval时,基本字符串和字符串对象也会产生不同结果,eval会将基本字符串作为源代码处理,而字符串对象则被看作对象处理,返回对象。

s1 = "2 + 2";               // creates a string primitives2 = new String("2 + 2");   // creates a String objectconsole.log(eval(s1));      // returns the number 4console.log(eval(s2));      // returns the string "2 + 2"

利用 valueOf 方法,我们可以将字符串对象转换为其对应的基本字符串。

console.log(eval(s2.valueOf())); // returns the number 4

转载地址:http://rwial.baihongyu.com/

你可能感兴趣的文章
windows系统之WSUS服务器:更改WSUS更新文件的路径
查看>>
Btrace
查看>>
我的友情链接
查看>>
python抓取豆瓣妹子图片并上传到七牛
查看>>
关于Spring Data redis几种对象序列化的比较
查看>>
windows下批处理设置U盘盘符为U【非PE】
查看>>
Windows系统补丁KB2962872导致InstallShield无法启动(解决方案已更新)
查看>>
#每天问自己个问题#0. 每天问自己个问题
查看>>
制作免费的数字签名证书
查看>>
nagios3.3 监控端安装记录
查看>>
linux下拆分文件split
查看>>
BoCloud博云获得CNCF Kubernetes服务提供商认证
查看>>
WebApp 页面自适应
查看>>
【转自中科蓝鲸】集群NAS与集群文件系统的区别
查看>>
tigase网络核心SockThread详解
查看>>
iotop 查看进程IO情况
查看>>
php获取网站域名 及 SERVER 相关变量
查看>>
如何搭建springboot + mybatis(一)
查看>>
sphinx学习(六)基本配置 common settings
查看>>
win7下安装hadoop2.2.0.涵盖64位
查看>>