首页 > CMS教程 > WordPress > 正文

使用基本字符串、数字和布尔值

PHPz
发布: 2023-08-29 18:25:02
原创
1139人浏览过

使用基本字符串、数字和布尔值

不要对字符串、数字和布尔文字可以被视为具有属性的对象这一事实感到困惑(例如,true.toString())。当这些基元值通过尝试访问其属性而被视为对象时,JavaScript 将从基元的关联构造函数创建一个包装器对象,以便可以访问包装器对象的属性和方法。

一旦访问了属性,包装器对象就会被丢弃。这种转换允许我们编写代码,使其看起来好像原始值实际上是一个对象。说实话,当它在代码中被视为对象时,JavaScript 会将其转换为对象,以便属性访问可以工作,然后在返回值后将其转换回原始值。这里需要注意的关键是正在发生的事情,而 JavaScript 正在幕后为您做这件事。


原始值样本

这里有一些示例来演示我正在谈论的内容:

字符串示例:sample56.html

<!DOCTYPE html><html lang="en"><body><script>

	// String object treated like an object.
	var stringObject = new String('foo');
	console.log(stringObject.length); // Logs 3.
	console.log(stringObject['length']); // Logs 3.

	// String literal/primitive converted to an object when treated as an object.
	var stringLiteral = 'foo';
	console.log(stringLiteral.length); // Logs 3.
	console.log(stringLiteral['length']); // Logs 3.
	console.log('bar'.length); // Logs 3.
	console.log('bar'['length']); // Logs 3.

</script></body></html>
登录后复制

数字示例:sample57.html

<!DOCTYPE html><html lang="en"><body><script>

	// Number object treated like an object.
	var numberObject = new Number(1.10023);
	console.log(numberObject.toFixed()); // Logs 1.
	console.log(numberObject['toFixed']()); // Logs 1.

	// Number literal/primitive converted to an object when treated as an object.
	var numberLiteral = 1.10023;
	console.log(numberLiteral.toFixed()); // Logs 1.
	console.log(numberLiteral['toFixed']()); // Logs 1.
	console.log((1234).toString()); // Logs '1234'.
	console.log(1234['toString']()); // Logs '1234'.

</script></body></html>
登录后复制

布尔示例:sample58.html

Perl学习手札 chm版
Perl学习手札 chm版

Perl学习手札是台湾perl高手写的一篇文章,特打包为chm版,方便大家阅读。 关于本书 1. 关于Perl 1.1 Perl的历史 1.2 Perl的概念 1.3 特色 1.4 使用Perl的环境 1.5 开始使用 Perl 1.6 你的第一个Perl程序 2. 标量变量(Scalar) 2.1 关于标量 2.1.1 数值 2.1.2 字符串 2.1.3 数字与字符串转换 2.2 使用你自己的变量 2.3 赋值 2.3.1 直接设定 2.3.2 还可以这样 2.4 运算 2.5 变量的输出/输入 2.

Perl学习手札 chm版 0
查看详情 Perl学习手札 chm版
<!DOCTYPE html><html lang="en"><body><script>

	// Boolean object treated like an object.
	var booleanObject = new Boolean(0);
	console.log(booleanObject.toString()); // Logs 'false'.
	console.log(booleanObject['toString']()); // Logs 'false'.

	// Boolean literal/primitive converted to an object when treated as an object.
	var booleanLiteral = false;
	console.log(booleanLiteral.toString()); // Logs 'false'.
	console.log(booleanLiteral['toString']()); // Logs 'false'.
	console.log((true).toString()); // Logs 'true'.
	console.log(true['toString']()); // Logs 'true'.

</script></body></html>
登录后复制

直接访问原始数字的属性(不存储在变量中)时,必须先计算该数字,然后才能将该值视为对象(例如, (1).toString();1..toString();)。为什么是两个点?第一个点被视为数字小数,而不是用于访问对象属性的运算符。


您通常应该使用原始字符串、数字和布尔值

表示字符串、数字或布尔值的文字/原始值的书写速度更快,并且文字形式更简洁。

因此,您应该使用文字值。此外, typeof 运算符的准确性取决于您创建值的方式(文字与构造函数调用)。如果您创建字符串、数字或布尔对象,则 typeof 运算符会将类型报告为对象。如果您使用文字,则 typeof 运算符将返回实际值类型的字符串名称(例如,typeof 'foo' // returns 'string')。

我在下面的代码中演示了这一事实。

示例:sample59.html

<!DOCTYPE html><html lang="en"><body><script>

	// String, number, and Boolean objects.
	console.log(typeof new String('foo')); // Logs 'object'.
	console.log(typeof new Number(1)); // Logs 'object'.
	console.log(typeof new Boolean(true)); // Logs 'object'.

	// String, number, and Boolean literals/primitives.
	console.log(typeof 'foo'); // Logs 'string'.
	console.log(typeof 1); // Logs 'number'.
	console.log(typeof true); // Logs 'boolean'.

</script></body></html>
登录后复制

结论

如果您的程序依赖 typeof 运算符来根据这些基本类型识别字符串、数字或布尔值,则应避免使用 StringNumberBoolean 构造函数。

以上就是使用基本字符串、数字和布尔值的详细内容,更多请关注php中文网其它相关文章!

最佳 Windows 性能的顶级免费优化软件
最佳 Windows 性能的顶级免费优化软件

每个人都需要一台速度更快、更稳定的 PC。随着时间的推移,垃圾文件、旧注册表数据和不必要的后台进程会占用资源并降低性能。幸运的是,许多工具可以让 Windows 保持平稳运行。

下载
来源:php中文网
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
最新问题
热门推荐
开源免费商场系统广告
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板
关于我们 免责申明 举报中心 意见反馈 讲师合作 广告合作 最新更新 English
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送
PHP中文网APP
随时随地碎片化学习

Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号