js学习基础——javascpit的数据类型
树图思维导图提供 javascpit的数据类型 在线思维导图免费制作,点击“编辑”按钮,可对 javascpit的数据类型 进行在线思维导图编辑,本思维导图属于思维导图模板主题,文件编号是:a4d37e02952534f1bafa063126bd3452
javascpit的数据类型思维导图模板大纲
字符集:Unicode
区分大小写
注释
单行注释://开头
多行注释:/*开头,*/结尾
字面量(也可称直接量,Literal values)
字符串
数字
布尔值
对象
数组
正则表达式
函数
特殊值null
严格模式(strict mode)
ECMAScript5引入严格模式,严格模式下,ECMAScript3中不确定的行为将得到处理,某些不安全的操作也会抛出错误
整个脚本使用严格模式:顶部添加一行“use strict”;
指定函数下使用严格模式:函数大括号后第一行“use strict”;
标识符
指变量、属性、函数的名字,或者函数的参数
必须以字母、下划线(_)或美元符号($)开始,后续字符可以是字母、数字、下划线、美元符号
标识符中的字母可以包含ASCⅡ或Unicode字母字符,但不推荐
按照惯例,采用驼峰大小写格式
可选的分号
JavaScript 使用分号(;)将语句分隔开
如果语句各自独占一行,通常可以省略语句之间的分号,但不推荐
变量
松散类型的:可以用来保存任何类型的数据
定义变量:使用关键字 var 来声明
使用 var 运算符定义的变量是的该作用域中的局部变量
省略 var 运算符可以定义全局变量,但不是推荐的做法
typeof运算符
检测给定变量的数据类型
undefined,如果这个值未声明或已声明但未初始化
boolean,如果这个值是布尔值
string,如果这个值是字符串
number,如果这个值是数值
object,如果这个值是对象或 null
function,如果这个值是函数
typeof null 结果是 object是历史遗留 Bug
从技术角度讲,函数在 JavaScript 中是对象,不是一种数据类型,然而,函数也确实有一些特殊的属性,因此通过 typeof 运算符来区分函数和其他对象是有必要的。
简单数据类型(基本数据类型、原始数据类型)
undefined
只有1个值,即 undefined
使用 var 声明变量但未对其加以初始化时,这个变量的值就是 undefined
null
只有1个值,即 null
它用来表示值的空缺
可以认为 undefined 是表示系统级的、出乎意料的或类似错误的值的空缺,而 null 是表示程序级的、正常的或在意料之中的值的空缺
使用null的场景
用来初始化一个变量,这个变量可能赋值为一个对象
用来和一个已经初始化的变量比较,这个变量可以是也可以不是一个对象
当函数的参数期望是对象时,作用参数传入
当函数的返回值期望是对象时,作用返回值传出
不使用null的场景
不要使用 null 来检测是否传入了某个参数
不要使用 null 来检测一个未初始化的变量
Boolean
类型只有两个字面值:true 和 false
JavaScript 中所有类型的值都能使用 if 语句或 Boolean() 函数转换为对应的 Boolean 值
转换规则
undefined类型:undefined值转换为false
null类型:null值转换为false
Boolean型:true值转换为true;false值转换为false
string类型:任何非空字符串转换为true;空字符串转换为false
number类型:任何非零数字(包括无穷大)转换为true;0和NaN转换为false
object类型:任何对象转换为true
number
使用 IEEE 754 格式来表示整数和浮点数值
和其他编程语言不同,JavaScript 中的所有数字均用浮点数值表示
整数
所有以八进制和十六进制表示的数值最终都将被转换成十进制数值
八进制第一位必须是0,后面跟八进制序列0到7,如果超出了范围,则忽略前导0,后面的数值当做十进制解析,例如:089会被解析为89。(八进制字面量在严格模式下是无效的,会抛出错误。)
十六进制前两位必须是 0x 或 0X,后跟十六进制序列09、af(不区分大小写),如果超出了范围,则会报语法错误
浮点数
JavaScript 会不失时机的将浮点数转换成整数
对于极大或者极小的数值,可采用科学技术法(也称e表示法)
浮点数值的最高精度是17位小数,但在进行算术计算时其精确度远远不如整数
正无穷、负无穷
JavaScript 能表示的数值范围从 Number.MIN_VALUE 到 Number.MAX_VALUE,并将超出范围的数转换成 Number.POSITIVE_INFINITY 或 Number.NEGATIVE_INFINITY
0作为除数是不会报错的,正数除以0返回正无穷,负数除以0返回负无穷,0除以0返回NaN
JavaScript 提供了 isFinite() 函数,来确定一个数是不是有穷的
NaN
之所以称它为「非数值」,是因为它不能参与算数运算,任何涉及 NaN 的操作都返回 NaN
NaN 与任何值都不相等(包括自身)
JavaScript 提供了 isNaN() 函数,来确定一个数是不是 NaN
转型函数
number()
isNaN() 函数在接收到一个值之后,会尝试使用转型函数 Number() 将这个值转换为数值
undefined 转换为 NaN
null 转换为 0
true 转换为 1、false 转换为 0
number 整数转换为十进制,小数不变
string 如果只包含十进制数和小数,则返回对应的数值,如果只包含八进制数,则忽略前导0返回剩余部分,如果只包含十六进制,则返回十进制数,空字符串转换为0,其它字符串转换为 NaN
string 如果只包含十进制数和小数,则返回对应的数值,如果只包含八进制数,则忽略前导0返回剩余部分,如果只包含十六进制,则返回十进制数,空字符串转换为0,其它字符串转换为 NaN
parseInt()
parseInt() 函数会忽略字符串前面的空格,直至找到第一个非空格字符,只要第一个非空格字符不是数字或者正负号,一律返回 NaN
如果第一个非空格字符是数字字符,parseInt() 会继续解析第二个字符,直到解析完所有后续字符或者遇到了一个非数字字符
parseFloat()
parseFloat() 函数也会忽略字符串前面的空格,直至找到第一个非空格字符,只要第一个非空格字符不是数字或者正负号或者小数点,一律返回 NaN
如果第一个非空格字符是上述字符之一,parseFloat() 会继续解析第二个字符,直到解析完所有后续字符或者遇到了一个非浮点数值
string
用于表示由零或多个16位 Unicode 字符组成的字符序列,即字符串
字符串可以由双引号(
String 数据类型包含一些特殊的字符字面量,也叫转义序列,用于表示非打印字符,或者具有其他用途的字符
例如: 换行、\t 制表、\b 空格、\r 回车、\f 进纸、\\ 斜杠、\' 单引号,在用单引号表示的字符串中使用、\
转义字符可出现在字符串中的任意位置,且长度为1
大部分值都可以使用继承而来的 toString()方法转换为字符串,但 undefined 和 null 值没有这个方法
对数值使用 toString() 方法时,可以传入一个数字基数,以此输出对应进制的字符串值
在不知道要转换的值是不是 undefined 或 null 的情况下,还可以使用转型函数 String(),这个函数能够将任何类型的值转换为字符串
如果值有 toString() 方法,则调用该方法(没有参数)并返回相应的结果;
如果值是 undefined,则返回
如果值是 null,则返回
复杂数据类型
object
每个对象都具有的属性和方法
constructor:保存着用于创建当前对象的函数(构造函数)
hasOwnProperty():用于检查给定的属性在当前对象实例中是否存在
propertyIsEnumerable():用于检查给定的属性是否能够使用for-in语句来枚举
isPrototypeOf():用于检查对象是否是传入对象的原型
toString() 方法:返回对象的字符串表示
toLocaleString():返回对象的本地字符串表示
valueOf():返回对象的字符串、数值或布尔值表示(通常与toString()方法的返回值相同)
Object 本质上是由一组无序的名值对组成
「名称」部分是一个 JavaScript 字符串
「值」部分可以是任何 JavaScript 的数据类型(包括对象和方法)
「对象字面量」法创建一个对象
树图思维导图提供 904名中国成年人第三磨牙相关知识、态度、行为和病史的横断面调查 在线思维导图免费制作,点击“编辑”按钮,可对 904名中国成年人第三磨牙相关知识、态度、行为和病史的横断面调查 进行在线思维导图编辑,本思维导图属于思维导图模板主题,文件编号是:10b9a8a2dd2fb4593f8130ef16c320fc
树图思维导图提供 9.战斗的基督教 在线思维导图免费制作,点击“编辑”按钮,可对 9.战斗的基督教 进行在线思维导图编辑,本思维导图属于思维导图模板主题,文件编号是:33d168acd0cd9f767f809c7a5df86e3a