3.JavaScript的数字,字符串和布尔值以及null和undefined

计算机程序的运行需要对值进行操作,能够表示并操作的值的类型叫做数据类型(type),能支持多种数据类型是编程语言最基本的特性.变量(variable)是一个值的符号名称,可以通过名称来获得值的引用

JavaScript的数据类型分为两类:

  • 原始类型: 数字、字符串和布尔值

  • 对象类型: 对象(object)是属性(property)的集合,每个属性都由键值对组成

此外还有两个特殊的原始值: nullundefined,它们代表了各自特殊类型的唯一成员

还有两个特殊的对象: 数组(表示带编号的值的有序集合),函数(具有与它相关联的可执行代码的对象,通过调用函数来执行代码)

如果函数用new来新建一个对象,那我们称之为构造函数.每个构造函数定义了一类(class)对象--由构造函数初始化的对象组成的集合,而类除了函数类(Function)和数组类(Array)外,还有日期类(Date)、正则类(RegExp)和错误类(Error).

JavaScript同样可分为可变类型不可变类型,可变类型是可以修改的,对象和数组属于可变类型,数字,布尔值,null和undefined属于不可变类型

数字

与其他编程语言不同的是,JavaScript不分整数值和浮点值,JavaScript中的所有数字均用浮点值表示

JavaScript程序是使用语言本身提供的算术运算符来进行数字运算,包括加法运算符+,剑法运算符-,乘法运算符*,除法运算符/,和求余运算符%

除了基本运算,JavaScript还通过Math对象的属性定义的函数来实现更加复杂的操作

Math.pow(2,53)  //2的53次幂
Math.round(.6)  //四舍五入  1
Math.ceil(.6)   //向上求整  1.0
Math.floor(.6)  //向下求整  0.0
Math.abs(-5)  //求绝对值  5
Math.max(x,y,z)  //取最大值  
Math.min(x,y,z)  //取最小值
Math.random()  //0到1.0的随机数
Math.PI  //Π
Math.E  //e
Math.sqrt(3)  //3的平方根
Math.pow(3,1/3)  //3的立方根
Math.sin(0)   //三角函数
Math.log(10)  //10的自然对数
Math.log(100)/Math.LN10  //以10为底100的对数
Math.log(512)/Math.LN2  //以2为底512的对数
Math.exp(3)  //e的三次幂

此外,JavaScript的算术运算在溢出,下溢,或被零整除不会报错

溢出的表示结果超过了数字上限,结果为无穷大(infinity),下溢是当结果无限接近零且比JavaScript能表示的最小值还小,结果为0

当JavaScript使用实数时,通常只是真实值的一个近似表示,因为JavaScript采用的时IEEE-754浮点表示法,能精确表示分数,但却不能表示0.1这样的数字如0.2-0.1=0.099999999998

数字直接量

当一个数字直接出现在JavaScript程序中,我们称之为数字直接量

数字直接量分为:

  • 整数型直接量
  • 浮点型直接量(6.02e23 // 6.02*10^23)

文本

字符串(string)是一组由16位值组成的不可变的有序序列,每个字符来自unicode字符集

字符串的使用

在JavaScript中的字符串直接量,通常由单引号或者双引号括起来,单可以包双,双也可以包单,换行用\n或者每行后面加\

JavaScript的内置功能之一就是字符串连接,用加号将两个字符串连接,获取字符串的长度则用str.length

除了length属性,还有很多可调用的方法

var s = 'hello,world'
s.charAt(0)  //第一个字符
s.charAt(s.lenght - 1)  //获取最后一个字符
s.substring(1,4)  //获取第2到4个字符
s.slice(1,4)   /同上
s.slice(-3)  //最后三个字符
s.indexOf('1')  //1首次出现的位置
s.lastIndexOf('1')  //1最后出现的位置
s.indexOf('1',3)  //在位置3后首次出现1的位置
s.split(',')   //分割成字符串
s.replace('h','H')   //将h替换成H
s.toUpperCase()    //全部变成大写

字符串都是固定不变的,使用各种方法返回的是新字符串,原字符串没有改变

布尔值

布尔值指代真或假,开或关,是或否.这个类型只有两个值,保留字true和false

if(a==4)
b = b + 1
else
a = a + 1
//当a=4时 b加一,否则a加一

任意JavaScript的值都可以换成布尔值,

如 undefined,null,0,-0,'//空字符串',NaN都会转换成false,其他的全部转换成true

此外还有&&,||和!三个运算符,这里不做赘述

null和undefined

null是JavaScript的关键字,它表示一个特殊值,常用来描述空值.对null进行typeof运算返回字符串'object',说明null可以认为是一个特殊的对象,含义是非对象.

undefined也表示值的空缺,用未定义的值来表示更深层次的空值,表面变量没有初始化,如果查询属性返回undefined,则说明这个属性或元素不存在,如果函数没有返回任何值,也返回undefined

且 undefined == null 是为true的,undefined === null则为false

posted @ 2020-09-24 16:55  桑夏南风  阅读(196)  评论(0编辑  收藏  举报