深入解析JavaScript中的数字对象与字符串对象


Posted in Javascript onOctober 21, 2015

JavaScript Number 对象
JavaScript 只有一种数字类型。
可以使用也可以不使用小数点来书写数字。
JavaScript 数字
JavaScript 数字可以使用也可以不使用小数点来书写:
实例

var pi=3.14;  // 使用小数点
var x=34;    // 不使用小数点

极大或极小的数字可通过科学(指数)计数法来写:
实例

var y=123e5;  // 12300000
var z=123e-5;  // 0.00123

所有 JavaScript 数字均为 64 位
JavaScript 不是类型语言。与许多其他编程语言不同,JavaScript 不定义不同类型的数字,比如整数、短、长、浮点等等。
在JavaScript中,数字不分为整数类型和浮点型类型,所有的数字都是由 浮点型类型。JavaScript采用IEEE754标准定义的64位浮点格式表示数字,它能表示最大值为±1.7976931348623157 x 10308,最小值为±5 x 10 -324
值 (aka Fraction/Mantissa) 指数 Sign

52 bits (0 - 51) 11 bits (50 - 62) 1 bit (63)

精度
整数(不使用小数点或指数计数法)最多为 15 位。
小数的最大位数是 17,但是浮点运算并不总是 100% 准确:
实例

var x = 0.2+0.1; // result will be 0.30000000000000004

八进制和十六进制
如果前缀为 0,则 JavaScript 会把数值常量解释为八进制数,如果前缀为 0 和 "x",则解释为十六进制数。
实例

var y = 0377; 
var z = 0xFF;

lamp 绝不要在数字前面写零,除非您需要进行八进制转换。
默认情况下,JavaScript 数字为十进制显示。
但是你可以使用 toString() 方法 输出16进制、8进制、2进制。
实例

var myNumber=128;
myNumber.toString(16);  // returns 80
myNumber.toString(8);  // returns 200
myNumber.toString(2);  // returns 10000000

无穷大(Infinity)
当数字运算结果超过了JavaScript所能表示的数字上限(溢出),结果为一个特殊的无穷大(infinity)值,在JavaScript中以Infinity表示。同样地,当负数的值超过了JavaScript所能表示的负数范围,结果为负无穷大,在JavaScript中以-Infinity表示。无穷大值的行为特性和我们所期望的是一致的:基于它们的加、减、乘和除运算结果还是无穷大(当然还保留它们的正负号)。
实例

myNumber=2;
while (myNumber!=Infinity)
{
myNumber=myNumber*myNumber; // Calculate until Infinity
}

除以0也产生了无限:
实例

var x = 2/0;
var y = -2/0;

NaN - 非数字值
NaN 属性是代表非数字值的特殊值。该属性用于指示某个值不是数字。可以把 Number 对象设置为该值,来指示其不是数字值。
你可以使用 isNaN() 全局函数来判断一个值是否是 NaN 值。
实例

var x = 1000 / "Apple";
isNaN(x); // returns true
var y = 100 / "1000";
isNaN(y); // returns false

除以0是无穷大,无穷大是一个数字:
实例

var x = 1000 / 0;
isNaN(x); // returns false

数字可以是数字或者对象
数字可以私有数据进行初始化,就像 x = 123;
JavaScript 数字对象初始化数据, var y = new Number(123);
实例

var x = 123;
var y = new Number(123);
typeof(x) // returns Number
typeof(y) // returns Object

实例

var x = 123;       
var y = new Number(123);
(x === y) // is false because x is a number and y is an object.

JavaScript 字符串(String) 对象
String 对象用于处理已有的字符块。
JavaScript 字符串
一个字符串用于存储一系列字符就像 "John Doe".
一个字符串可以使用单引号或双引号:
实例

var carname="Volvo XC60";
var carname='Volvo XC60';

你使用位置(索引)可以访问字符串中任何的字符:
实例

var character=carname[7];

字符串的索引从零开始, 所以字符串第一字符为 [0],第二个字符为 [1], 等等。
你可以在字符串中使用引号,如下实例:
实例

var answer="It's alright";
var answer="He is called 'Johnny'";
var answer='He is called "Johnny"';

或者你可以在字符串中使用转义字符使用引号:
实例

var answer='It's alright';
var answer="He is called "Johnny"";

字符串(String)
字符串(String)使用长度属性length来计算字符串的长度:
实例

var txt="Hello World!";
document.write(txt.length);

var txt="ABCDEFGHIJKLMNOPQRSTUVWXYZ";
document.write(txt.length);

在字符串中查找字符串
字符串使用 indexOf() 来定位字符串中某一个指定的字符首次出现的位置:
实例

var str="Hello world, welcome to the universe.";
var n=str.indexOf("welcome");

如果没找到对应的字符函数返回-1
lastIndexOf() 方法在字符串末尾开始查找字符串出现的位置。
内容匹配
match()函数用来查找字符串中特定的字符,并且如果找到的话,则返回这个字符。
实例

var str="Hello world!";
document.write(str.match("world") + "<br>");
document.write(str.match("World") + "<br>");
document.write(str.match("world!"));

替换内容
replace() 方法在字符串中用某些字符替换另一些字符。
实例

str="Please visit Microsoft!"
var n=str.replace("Microsoft","w3cschool");

字符串大小写转换
字符串大小写转换使用函数 toUpperCase() / toLowerCase():
实例

var txt="Hello World!";    // String
var txt1=txt.toUpperCase();  // txt1 is txt converted to upper
var txt2=txt.toLowerCase();  // txt2 is txt converted to lower

字符串转为数组
字符串使用strong>split()函数转为数组:
实例

txt="a,b,c,d,e"  // String
txt.split(",");  // Split on commas
txt.split(" ");  // Split on spaces
txt.split("|");  // Split on pipe

特殊字符
Javascript 中可以使用反斜线(\)插入特殊符号,如:撇号,引号等其他特殊符号。
查看如下 JavaScript 代码:

var txt="We are the so-called "Vikings" from the north.";
document.write(txt);

在JavaScript中,字符串的开始和停止使用单引号或双引号。这意味着,上面的字符串将被切成: We are the so-called
解决以上的问题可以使用反斜线来转义引号:

var txt="We are the so-called \"Vikings\" from the north.";
document.write(txt);

JavaScript将输出正确的文本字符串:We are the so-called "Vikings" from the north.
下表列出其他特殊字符,可以使用反斜线转义特殊字符:
深入解析JavaScript中的数字对象与字符串对象

Javascript 相关文章推荐
JavaScript高级程序设计 扩展--关于动态原型
Nov 09 Javascript
JavaScript 类型的包装对象(Typed Wrappers)
Oct 27 Javascript
jQuery 瀑布流 浮动布局(一)(延迟AJAX加载图片)
May 23 Javascript
一个简单的JS鼠标悬停特效具体方法
Jun 17 Javascript
利用jQuery实现漂亮的圆形进度条倒计时插件
Sep 30 Javascript
node.js使用cluster实现多进程
Mar 17 Javascript
基于JS分页控件实现简单美观仿淘宝分页按钮效果
Nov 07 Javascript
强大的 Angular 表单验证功能详细介绍
May 23 Javascript
在 Node.js 中使用原生 ES 模块方法解析
Sep 19 Javascript
RxJS在TypeScript中的简单使用详解
Apr 13 Javascript
JS轮播图的实现方法2
Aug 25 Javascript
Element el-button 按钮组件的使用详解
Feb 01 Javascript
jQuery无刷新切换主题皮肤实例讲解
Oct 21 #Javascript
JavaScript操作HTML元素和样式的方法详解
Oct 21 #Javascript
13个PHP函数超实用
Oct 21 #Javascript
JavaScript对HTML DOM使用EventListener进行操作
Oct 21 #Javascript
JavaScript对象数组的排序处理方法
Oct 21 #Javascript
Javascript刷新窗口方法小结
Oct 21 #Javascript
JavaScript简单遍历DOM对象所有属性的实现方法
Oct 21 #Javascript
You might like
使用 JScript 创建 .exe 或 .dll 文件的方法
2011/07/13 Javascript
Jquery实现控件的隐藏和显示实例
2014/02/08 Javascript
js获取上传文件大小示例代码
2014/04/10 Javascript
用js读、写、删除Cookie代码分享及详细注释说明
2014/06/05 Javascript
javascript基于DOM实现省市级联下拉框的方法
2015/05/14 Javascript
详解JS正则replace的使用方法
2016/03/06 Javascript
javascript学习指南之回调问题
2016/04/23 Javascript
node.js版本管理工具n无效的原理和解决方法
2016/11/24 Javascript
Vue数据驱动模拟实现2
2017/01/11 Javascript
Web前端框架Angular4.0.0 正式版发布
2017/03/28 Javascript
简单的JS控制button颜色随点击更改的实现方法
2017/04/17 Javascript
微信小程序实现倒计时调用相机自动拍照功能
2018/06/10 Javascript
详解JavaScript中的强制类型转换
2019/04/15 Javascript
JS实现返回上一页并刷新页面的方法分析
2019/07/16 Javascript
微信小程序如何通过用户授权获取手机号(getPhoneNumber)
2020/01/21 Javascript
vue学习笔记之slot插槽用法实例分析
2020/02/29 Javascript
[05:10]2014DOTA2国际邀请赛 通往胜利之匙赛场探秘之旅
2014/07/18 DOTA
通过实例浅析Python对比C语言的编程思想差异
2015/08/30 Python
用python做一个搜索引擎(Pylucene)的实例代码
2017/07/05 Python
python实现决策树分类(2)
2018/08/30 Python
pycharm执行python时,填写参数的方法
2018/10/29 Python
十行代码使用Python写一个USB病毒
2019/06/21 Python
在linux下实现 python 监控usb设备信号
2019/07/03 Python
python中count函数简单用法
2020/01/05 Python
python时间序列数据转为timestamp格式的方法
2020/08/03 Python
Python+Opencv实现把图片、视频互转的示例
2020/12/17 Python
英国蜡烛、蜡烛配件和家居香氛购买网站:Yankee Candle
2018/12/12 全球购物
优秀高中生事迹材料
2014/02/11 职场文书
《夕阳真美》教学反思
2014/04/27 职场文书
挂职学习心得体会
2014/09/09 职场文书
工作疏忽、懈怠的检讨书
2014/09/11 职场文书
英语演讲开场白
2015/05/29 职场文书
运动会宣传语
2015/07/13 职场文书
2015年公路路政个人工作总结
2015/07/24 职场文书
《异世界四重奏》剧场版6月10日上映 PV视觉图原创角色发表
2022/03/20 日漫
MySQL 表锁定 LOCK和UNLOCK TABLES的 SQL语法
2022/04/18 MySQL