JavaScript 18 JavaScript 字符串_javascript18-程序员宅基地

技术标签: 非零基础自学前端  前端  javascript  开发语言  

JavaScript

18 JavaScript 字符串

JavaScript 字符串用于存储和操作文本。

18.1 JavaScript 字符串

JavaScript 字符串是引号中的零个或多个字符。

var x = "Bill Gates"

使用单引号或双引号:

var carname = "Porsche 911";
var carname = 'Porsche 911';

可以在字符串中使用引号,只要不匹配围绕字符串的引号即可:

var answer = "It's good to see you again!";
var answer = "He is called 'Bill'";
var answer = 'He is called "Bill"';
18.2 字符串长度

内建属性 length 可返回字符串的长度

var txt = "ABCDEFGHIJKLMNOPQRSTUVWXYZ";
var sln = txt.length;

在这里插入图片描述

18.3 特殊字符

由于字符串必须由引号包围,JavaScript 会误解这段字符串:

var y = "中国是瓷器的故乡,因此 china 与"China(中国)"同名。"

该字符串将被切为 “中国是瓷器的故乡,因此 china 与”。

避免此问题的解决方法是,使用 \ 转义字符

反斜杠转义字符把特殊字符转换为字符串字符:

在这里插入图片描述

序列 \" 在字符串中插入双引号:

var x = "中国是瓷器的故乡,因此 china 与\"China(中国)\"同名。"

在这里插入图片描述

序列 \' 在字符串中插入单引号:

var x = 'It\'s good to see you again';

在这里插入图片描述

序列 \\ 在字符串中插入反斜杠:

var x = "字符 \\ 被称为反斜杠。";

在这里插入图片描述

转义字符(\)也可用于在字符串中插入其他特殊字符。

在这里插入图片描述

这六个转义字符最初设计用于控制打字机、电传打字机和传真机。

它们在 HTML 中没有任何意义。

18.4 长代码行换行

为了最佳可读性, 程序员们通常会避免每行代码超过 80 个字符串。

如果某条 JavaScript 语句不适合一整行,那么最佳换行位置是某个运算符之后:

document.getElementById("demo").innerHTML =
"Hello Kitty.";

也可以在字符串中换行,通过一个反斜杠即可:

document.getElementById("demo").innerHTML = "Hello \
Kitty!";

在这里插入图片描述

\ 方法并不是 ECMAScript (JavaScript) 标准。

某些浏览器也不允许 \ 字符之后的空格。

对长字符串换行的最安全做法(但是有点慢)是使用字符串加法:

document.getElementById("demo").innerHTML = "Hello" + 
"Kitty!";

不能通过反斜杠对代码行进行换行:

document.getElementById("demo").innerHTML = \ 
"Hello Kitty!";

//无效
18.5 字符串可以是对象

通常,JavaScript 字符串是原始值,通过字面方式创建:

var firstName = "Bill"

字符串也可通过关键词 new 定义为对象:

var firstName = new String("Bill")
var x = "Bill"; 【字符串】
var y = new String("Bill"); 【对象】

// typeof x 将返回 string
// typeof y 将返回 object

不要把字符串创建为对象。它会拖慢执行速度。

new 关键字使代码复杂化。也可能产生一些意想不到的结果:

当使用 == 相等运算符时,相等字符串是相等的:

var x = "Bill";             
var y = new String("Bill");

// (x == y) 为 true,因为 x 和 y 的值相等

在这里插入图片描述

当使用 === 运算符时,相等字符串是不相等的,因为 === 运算符需要类型和值同时相等。

在这里插入图片描述

甚至更糟。对象无法比较:

var x = new String("Bill");             
var y = new String("Bill");

// (x == y) 为 false,因为 x 和 y 是不同的对象
var x = new String("Bill");             
var y = new String("Bill");

// (x === y) 为 false,因为 x 和 y 是不同的对象

请注意 (xy) 与 (x=y) 的区别。

JavaScript 对象无法进行对比,比较两个 JavaScript对象 将始终返回 false

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.csdn.net/weixin_44226181/article/details/127582524

智能推荐

JS实现复制到剪贴板功能_js复制hidden内容到剪贴板-程序员宅基地

文章浏览阅读789次。原生JS实现原生JS,先使用 select() 选中输入框文本,然后使用 document.execCommand("Copy")复制到剪贴板前提条件select() 方法只对 <input> 和 <textarea> 有效输入框不能有disabled属性输入框不能有hidden属性输入框的 width 和 height 不能为0实现代码HTML<div> <input id="copyInput" type="text" value_js复制hidden内容到剪贴板

Zip压缩文件没有解压密码怎么办?_zip没密码怎么打开-程序员宅基地

文章浏览阅读5.7w次,点赞19次,收藏59次。Zip压缩文件没有解压密码怎么办?在平时,我们难免的需要到浏览器上面寻找一些需要的资源,可往往下载好了zip文件后,解压时却需要密码。真的让人很痛苦,这样设置密码无非是想利用这些资源来赚取利益罢了。那有没有什么办法可以破解zip解压时需要的密码呢?答案当然是有的,下面我就其中一种方法具体演示一遍,希望对大家有所帮助。(第一次写博客,可能讲的没有那么详细,请见谅)首先我们需要下载一个破解软件..._zip没密码怎么打开

ubuntn系统下cuda9.0+cudnn7.5安装教程_ubuntu20.10安装cuda9.0+cudnn7-程序员宅基地

文章浏览阅读1.5k次。在离开之际,将自己的电脑系统重新升级了下,在此做如下记录,以便后续查证。1、双系统安装 这里只是简单说下,win10+Ubuntu,这次采用的Ubuntu分区是“boot”+“swap”+“/”的形式,具体可以去参考另一篇博客。2、cuda安装(1)下载安装文件检查自己的电脑配置是否支持cuda加速(一般英伟达系列显卡支持),这里推荐直接去https://d......_ubuntu20.10安装cuda9.0+cudnn7

VMware ESXi 7.0 U3n macOS Unlocker & OEM BIOS (标准版和厂商定制版)_esxi unlocker-程序员宅基地

文章浏览阅读1k次。VMware ESXi 7.0 U3n macOS Unlocker & OEM BIOS (标准版和厂商定制版)_esxi unlocker

comsol5.4模型涂色_comsol几何模型怎么设置颜色-程序员宅基地

文章浏览阅读1.5w次,点赞8次,收藏13次。COMSOL5.4版本几何模型上色comsol中的几何模型默认为灰白色,为了使不同零件在建模过程中具有分辨度、后期图像更直观,可以给不同的零部件添加不同的颜色。添加方法如下。1.导入一个灰白色模型这是一个锥盆在一个球形域内,从图中可以看出纯灰白色的图像很难将两者分开。这是可以考虑给各自赋不同的颜色。在组件中定义显示选择,选中球体的边界,并设置为蓝色,再点击抑制选择突出显示按钮,即可。同样的操作,将里面的锥盆设置为绿色。当然了,配置什么颜色完全取决于各位的审美。本次分享到此结束,谢谢浏览。._comsol几何模型怎么设置颜色

交叉编译openssh出现错误Makefile:548: recipe for target 'install_sw' failed_makefile:546: recipe for target 'install_sw' faile-程序员宅基地

文章浏览阅读6.9k次,点赞3次,收藏4次。交叉编译openssh出现错误将OpenSSH移植到ARM Linux,交叉编译openssh时,在第二步编译openssl时,make install出现如下错误:cp: 'e_os2.h' and '/home/word/iTOP-4412-Linux-ssh/openssl-1.0.2l/include/openssl/e_os2.h' are the same fileMakefile:5_makefile:546: recipe for target 'install_sw' failed

随便推点

JS加载资源失败的解决办法_指向其它服务器页面的 <script> 加载失败。-程序员宅基地

文章浏览阅读1.6k次。比如, 网络不稳定,服务器出错,跨域问题、或者资源本身有问题,导致出现了资源加载失败。就会造成后面需要使用的地方出现。// 便签的名称必须是 'SCRIPT' 与 event 错误的类型不能是 ErrorEvent。标签中资源加载出错,从而执行一些自己想要的操作。'script 加载错误'// 拿到触发错误的标签。_指向其它服务器页面的 加载失败。

OpenCV 读取、修改、保存图像_opencv对传入的对象图片进行修改-程序员宅基地

文章浏览阅读529次。OpenCV 图像保存格式之一为 cv::Mat, 常用 imread 进行图像读取,用 imwrite 进行图像保存,用 imshow 进行图像显示。_opencv对传入的对象图片进行修改

OC基础知识点的总结(全),学习OC的日记_oc setobject-程序员宅基地

文章浏览阅读520次。"font-size:18px;">类的方法 1.在加号方法中不能使用实例变量,实例变量是依托于对象存在的只有有了对象,实例变量才会有空间 2.self 谁调用该方法,self就代表谁 当方法是一个减号方法时, 调用该方法的对象是谁,self就代表当前对象 当方法是一个加号方法时, 调用该方法的类是谁,self就代表当前类 3._oc setobject

解决Java上传文件到Linux 没有读权限_linux设置java上传文件的权限-程序员宅基地

文章浏览阅读1.8k次。问题描述上传图片后想对文件进行查看发现一直是403错误,到linux下找到上传文件的,发现其群组和其他组没有读的权限,修改一下权限则可以访问。由此判定由权限问题导致的403错误。导致权限不足原因<1> tomcat版本差别高版本的tomcat会出现这种问题解决问题<1> 检查linux-- 查看系统默认配置vim /etc/profilelinux文件访问默认权限与umask有关,如果是002或022就正常没有问题。<2> 检查tomcat[_linux设置java上传文件的权限

“有嗅觉”的机器人,闻出8种气味_“有嗅觉”的机器人能闻出8种气味,灵敏度比普通设备高10000倍-程序员宅基地

文章浏览阅读163次。当机器人接触不同气味时,这个传感器向与之连接的一个电子系统传递不同的电信号,随后,该团队使用机器学习方法创建了一个“气味系统库”,包括柠檬、杏仁糖、天竺葵、和混合气味等,并使用了一个随机森林分类器进行气味分类。研究显示,这台机器人能够嗅出天竺葵、柠檬、杏仁蛋白糖等8种气味,就算混合在一起也能分辨出来,而且灵敏度比气相色谱-质谱法(GC-MS)高10000倍!甚至能检测出0.001微克的挥发性发挥物。以色列特拉维夫大学研究人员把蝗虫触须安装到机器人上,利用蝗虫的灵敏嗅觉将机器人辨别气味的灵敏度提高约1万倍。_“有嗅觉”的机器人能闻出8种气味,灵敏度比普通设备高10000倍

阿里CTO程立:阿里巴巴的开源历程、理念和实践-程序员宅基地

文章浏览阅读3.7k次。云和开源,已然共同成为数字世界的根,需要政府和企业、需要我们大家一起来共建和共享。