第三章 类型、值和变量

        在编程语言中,表示和操作值的类型的被称作数据类型(type),编程语言最基本的特性是能够支持多种数据类型;

        想要保存一个值已被将来使用,将这个值赋值给一个变量(变量是一个值的符号名称),可以通过符号名称来引用这个值;

        javaScript数据类型分为两种数据类型:原始类型和对象类型,原始类型(数字、字符串、布尔值、两个特殊的原始值undefined和null),对象类型(数组和对象)

1、数字:js不区分整数值和浮点数值,js中所有数字都是用浮点数值表示的

        整型直接量:

1
10
14
15

        浮点型直接量;

0.1
.56
0.45

        js中的算数运算:js除了基本的+加、-减、*乘、/除、%求余,js还支持更加复杂的运算符,通过math对象的属性定义的函数和常量来实现:

Math.pow(1,3) // 代表1的3次幂
Math.round(.6) //四舍五入

        js中的算数运算在溢出、下溢或被零整除时不会报错,当运算结果超出了js所能表示的数字的上线,结果是infinity(无穷大),当负数超过了js所能表示的最大负值则是-infinity(负的无穷大),下溢是运算结果无限接近于零并比js所能表示的最小值还小的时候会返回一个特殊的值‘负零’,这个值几乎跟正常的零是一样的,

        运算符和不是数字的值进行运算时会返回NaN,也包括零除以零,他是没有意义的,也将返回NaN

        js定义了全局变量Infinity和NaN,用来表示无穷大和非数字值,在es3中这两个值是可读写的,并且可以修改,es5中修改了这个错误,改为她们只是可读的


        Date()构造函数,用来创建表示时间和日期的对象,日期方法对日期计算提供一些api,日期不像数字那样是基本数据类型


2、文本

        字符串是有一个16位值组成的不可变的有序序列,js字符串(数组)的索引从零开始,空字符串长度为零

        字符串直接量:在js中字符串直接量是由单引号或双引号括起来的的字符序列,由双引号定界的里面可以包含单引号,由单引号定界的也同样可以包含双引号

"abcddde'"
'a="2"'

        字符串直接量必须写在一行中,字符串直接量也可拆分成数行,每行必须以反斜线结束\,需要注意的是在写英文句子的时候有‘,撇号和单引号使用的是一个字符,在英文句子中要对别号进行转译使用\;

        转义字符:在js字符串中,反斜线有着特殊的用途,反斜线后可加其他字符,将不再是反斜线当前的意思

\n // 他表示的是一个换行符
\b // 退格符
\t // 水平制表符
\" // 双引号
\' // 撇号或单引号

        字符串的使用,字符串内置对像之一就是字符串连接,加号运算符用于数字是求相加求和的值,字符串中则是拼接字符串;

a = 'a'+'b'
a // 'ab'拼接后打印的值

         确认一个字符串的长度使用length属性,除了length字符串还提供很多可以调用的方法

var str = "hellow,world"
str.charAt(0) // "h" 获取到第一个字符
str.charAt(str.length-1) // "d"获取到最后一个字符
str.substring(1,4) // "ell"第二到四个字符
str.slice(1,4) // 同上
str.slice(-3) // "rld"最后三个字符
str.indexOf("l") // 2 字符"l"首次出现的位置
str.lastIndexOf("l") // 10 字符"l"最后一次出现的位置
str.indexOf("l",3) // 3 在位置3及之后首次出现字符l的位置
str.spilt(", ") // ["hellow","world"]分割成子串
str.replace("h","H") //"Hellow,world"全文字符替换
str.toUpperCase() // 英文大写转换

        在js中字符串是固定不变的,通过某些方法改变字符串都不会改变原字符串,而是返回一个新的字符串


3、布尔值

        布尔值指的是真或假,这个类型只有两个值,保留字true和false,js中比较的语句的结果通常都是布尔值

        会被转换为false的值有:

undefined
null
0
-0
NaN
"" // 空字符串

4、null和undefined

        null是js语言的关键字,常用来描述空值,对null执行typeof预算,返回字符串object,null是的一个特殊的对象值,含义是“非对象”,null可以表示字符串、数字对象、无值;

        undefined也是来表示值的空缺,主要表示一个变量在还没有使用var关键字声明时,就去使用的情况下,通常会报错,报错为undefined,代表这个变量还未定义


5、全局对像

        非常重要的对象(全局对象 global object)在js中有着重要的用途,js解释器启动时,他将创建一个全局对象,全局对象内定义了初始属性:

        全局属性:比如undefinec、Infinity和NaN

        全局函数:比如isNaN()、parseInt()和eval()

        构造函数:比如Date()、RegExp()、String()、Object()和Array()

        全局对象:比如Math和JSON

        可以使用js关键字this来引用全局对象,全局window对象有一个属性window引用其自身,他可以代替this来引用全局对象


6、包装对象

        对象属性的访问是通过.点来获取属性值的,比如说字符串、数字、布尔值都是有对应的对象属性,调用她们的属性,会创建一个临时对象,使用完后会自动销毁;则undefined和null是没有包装对象的,如果访问两者的属性将会报错

let s = "test"
s.len = 4 // 当给字符串设置属性是会临时创建一个临时对象
let b = s.len // 打印a的时候,上一个临时对象已经销毁自然不存在len属性,所以是分文不到的

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值