JavaScript第三章类型、值和变量

本文详细介绍了JavaScript的基础数据类型,包括原始类型(数字、字符串、布尔值、null、undefined)和对象类型。重点讲解了数字的表示法、字符串的操作、布尔值的运算以及类型转换。同时,提到了正则表达式、日期对象和全局对象的使用。对于类型转换,文章强调了原始值与对象引用的区别,并给出了转换方法。
摘要由CSDN通过智能技术生成

JavaScript的数据类型分为两类:原始类型和对象类型。

  • 原始类型包括:数字、字符串、布尔值、null、undefined。
  • 除了原始类型之外的都是对象。对象是属性的集合,每个属性都由“名/值对”构成,普通对象、其中有个特殊属性:全局对象、数组、函数

3.1数字

3.11整型直接量

以十进制和十六进制为主

0xff //15*16+15=255(十进制)

3.12 浮点型直接量

3.13
6.03e23 //6.03*10的23次方

3.13 JavaScript中的算术运算

除了基本的+、-、*、/ 加减乘除运算,还有一些复杂的运算,可以通过Math对象的属性定义函数和常量来实现

Math.pow(2.53)//2的53次幂 
Math.round(.6)//四舍五入 ==1
Math.max(x,y,z)//返回最大值
Math.PI//圆周率
  • 上溢
  • 下溢
  • 被0整除,返回正无穷大或负无穷大
  • 0除以0 结果为非数字,用NAN表示,NAN和任何值都不相等包括自身

3.14 二进制浮点数和四舍五入错误

浮点数表示法是一种二进制表示法,可以精确表示1/2,1/8,1/1024这样的分数,却不能精确表示0.1这样的简单数字,我们常用的分数都是十进制1/10,1/100,1/1000等。因此,对精度要求较高的金融计算,需要使用整数“分”,不要使用小数“元”。

3.15 日期和时间

JavaScript语言核心包含Date()构造函数,用来创建表示日期的对象

3.2文本

JavaScript中字符串是一组由16位值组成的不可变的有序序列,每个字符通常来自于Unicode字符集。字符串的索引从零开始,第一个字符的位置是0,第二个字符的位置是1。

3.2.1字符串直接量

在JavaScript程序中的字符串直接量,是由单引号或双引号括起来的字符序列。由单引号界定的字符串中可以包含双引号。

3.2.2 转义字符

\n   \\换行符
\f   \\换页符

3.2.3 字符串的使用

字符串拼接可以用+实现

msg ="Hello,"+"world"; //生成字符串"Hello,world"

字符串还提供了许多可以调用的方法

var s = "hello,world" //定义一个字符串
s.charAt(0)   //得到第一个字符"h"
s.length   //得到s的长度
s.split(",")  //按照,分割成子串

字符串也可以当作只读数组,可以使用方括号来访问字符串的单个字符

s[0]  //"h"
s[s.length-1]  //"d"

3.2.4 模式匹配

JavaScript定义了RegExp()构造函数,是一种具有实用API的特殊对象,用来创建表示文本匹配模式的对象。这些模式称为“正则表达式”。RegExp对象定义了利用正则表达式进行模式匹配和查找与替换的函数。

3.3布尔值

布尔值的保留字true和false。

布尔值包含toString()方法,因此可以使用这个方法将字符串转换为true或者false

另外还有三个重要的布尔值运算符,&&逻辑与,||逻辑或,!逻辑非

if(a==4) /a==4比较结果的布尔值就是true或者false

3.4 null和undefined

3.5 全局对象

可以使用this来引用全局变量

3.6 包装对象

var s = "test";
s.len = 4;
var t = s.len;

上面代码运行结果 t为undefined,原因是第二行创建的是临时对象,使用完随即销毁。在取字符串和布尔值的时候,临时创建的对象叫包装对象。

3.7 不可变的原始值和可变的对象引用

原始值:undefined、null、布尔值、数字、字符串

对象:数组和函数

3.8 类型转换

原始值到对象的转换可以通过调用:String(),Number(),Boolean()。

3.8.1 转换和相等性

== 比较时做了类型转换,===恒等未做类型转换

null == undefined //两个值被认为相等
“0” == 0 //转换前将字符串转换为数字
0 == false //比较前将布尔值转换为数字

3.8.2 显式类型转换

可以通过显式类型转换实现变量的类型转换

Number("3")   // =>3
String(false)   // => "false"或使用false.toString()
Object(3)  // => new Number(3)


var n=17
binary_string = n.toString(2)  //转换为“10001”二进制数

3.8.3 对象转换为原始值

日期类(Date Class)定义的toString方法返回一个可读的日期和时间的字符串,例如

new Date(2020,0,1).toString()   //=> "Fri Jan 01 2020 00:00:00 GMT-0800(PST)"

另一个转换对象函数是valueOf(),他可以默认将转换对象转换为原始值,例如

var d = new Date(2010,0,1);  //2010年1月1日(太平洋时间)
d.valueOf()  //=> 12622332800000

以上,通过toString()和valueOf()就可以实现数字和字符串,字符串和数字之间的转换了。

字符串中 "+" 可以数学加法和字符串连接操作

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值