js基本数据类型
JavaScript变量:
值可以改变的量称为变量;变量占据一段内存,通过变量名字可以调用内存中的信息JavaScript中的变量没有类型,即弱类型语言
变量的语法
var 代表声明变量 Var是variable的缩写
变量名:可以任意取名必须符合命名规则
变量名的注意事项
变量名必须使用字母或者下划线开始。
变量名必须使用英文字母、数字、下划线组成。
变量名不能使用JavaScript关键字与JavaScript保留字,而且不能使用javascript语言内部的单词,比如infinity,NaN,undefined。
变量的使用过程
变量可以先声明再赋值 ,变量可以重复赋值,可以通过变量名调用变量
数据类型
1.数字(Number) 类型
1.1整型:不带小数点的数字。最多为17 位
1.2浮点型 :带小数点的数字,小数点后面必须至少有一位数字
1.3数值范围:极大或极小的数字可以通过科学(指数)计数法来书写:
可以用isFinite()方法判断某个数值是否在最大值和最小值之间;
var result = Number.MAX_VALUE +Number.MIN_VALUE ;
alert(isFinite(result)); //true
1.4NaN:属性是代表非数字值的特殊值。该属性用于指示某个值不是数字。可以把 Number 对象设置为该值,来指示其不是数字值。
特点: NaN本身有两个非同寻常的特点。
1、任何涉及NaN的操作(例如NaN/10)都会返回NaN,这个特点在多步计算中有可能导致问题。
2、NaN与任何值都不相等,包括NaN本身。
一旦在程序中出现:NaN。那么肯定进行了非法的运算操作。
请使用isNaN()全局函数来判断一个值是否是 NaN值
2.字符串(String) 类型
定义:String(mix)函数, 用于表示由零个或多个16位Unicode字符组成的字符序列,即字符串。字符串可以有双引号(””)或单引号(‘’)表示。
直接量
定义:直接量表示如何表达这个值,一般除去表达式,给变量赋值时,等号右边都可以认为是直接量。
2.1字符串直接量
var test="helloworld!“就是字符串直接量,test是变量名。直接量又叫字面量
创建直接量的好处是最快的,其次是变量赋值。最后是通过函数调用获得的变量。
2.2转义字符
定义:转义字符是一种特殊的字符常量。转义字符以反斜线"\"开头,后跟一个或几个字符。转义字符具有特定的含义,不同于字符原有的意义,故称“转义”字符。
用法:对于某些特殊的字符,无法用键盘直接键入,这时就需要使用转义字符。还有一些字符用于特殊的用途,比如引号,如果要在字符串内包含引号,就需要使用转义字符。
注意:每一个转义字符都是以反斜杠“\”开始的。
转义字符 字符
\n 换行符 //alert(“你好!\n世界”);
\r 回车符
\" 双引号
\‘ 单引号
2.3字符串的使用
字符串拼接(+)的方法:用"+"将两个字符串"相加"
字符串长度length属性: var txt="Hello World!" document.write(txt.length)
3.布尔(Boolean)
定义:Boolean 对象只表示两个值:"true" 或 "false
4.Undefined类型
定义:undefined属性用于存放 JavaScript 的undefined 值,表示一个未声明的变量,或已声明但没有赋值的变量,或一个并不存在的对象属性。
注意:undefined类型只有一个值,即特殊的undefined。
5.Null类型
定义:undefined属性用于存放 JavaScript 的undefined 值,表示一个未声明的变量,或已声明但没有赋值的变量,或一个并不存在的对象属性。
定义:undefined属性用于存放 JavaScript 的undefined 值,表示一个未声明的变量,或已声明但没有赋值的变量,或一个并不存在的对象属性。
注意:undefined类型只有一个值,即特殊的undefined。
6.对象(Object)
“万物皆对象”
JavaScript中的所有事物都是对象:字符串、数值、数组、函数...
在 JavaScript 中,对象是拥有属性和方法的数据。
此外,JavaScript 允许自定义对象。
类型转换
7.1各种类型转换为字符串 toString(radix)、String(mix)
7.2各种类型转换为数字 Number(mix)、parseInt(string,radix)、parseFloat(string)
7.3各种类型转换为布尔值 Boolean(mix)
typeof操作符
定义:返回一个用来表示表达式的数据类型的字符串。
说明:typeof 运算符把类型信息当作字符串返回。
语法:
typeof 变量名;
Number(mix)
1.如果是布尔值, true和false分别被转换为1和0
2.如果是数字值,返回本身。
3.如果是null, 返回0.
4.如果是undefined, 返回NaN。
5.如果是字符串,
遵循以下规则:
如果字符串中只包含数字, 则将其转换为十进制( 忽略前导0)
如果字符串中包含有效的浮点格式, 将其转换为浮点数值( 忽略前导0)
如果是空字符串, 将其转换为0
如果字符串中包含非以上格式, 则将其转换为NaN
6.如果是对象,
则调用对象的valueOf()方法,
然后依据前面的规则转换返回的值。 如果转换的结果是NaN, 则调用对象的toString()方法,
再次依照前面的规则转换返回的字符串值。
varnum1=Number(“hello word”);//NaN 因为其中不包含任何有意义的数字值。
varnum1=Number(“”); //0
varnum1=Number(“000011”); //11 忽略了前导的零
varnum1=Number(true); //1
Number()函数转换字符串比较复杂而且不够合理
parseInt(string,radix)
• parseInt(string,radix)函数,
将字符串转换为整数类型的数值。它也有一定的规则:
1.忽略字符串前面的空格,
直至找到第一个非空字符 “ 12343”
2.如果第一个字符不是数字符号或者负号, 返回NaN “a12344”
3.如果第一个字符是数字,
则继续解析直至字符串解析完毕或者遇到一个非数字符号为止 “1234blue” 转换为1234,”blue”完全忽略
4.如果上步解析的结果以0开头,
则将其当作八进制来解析; 如果以0x开头, 则将其当作十六进制来解析
5.如果指定radix参数,
则以radix为基数进行解析
特点:直接查看是否符合数值模式,它会忽略字符串前面的空格,直至找到第一个非空格字符。如果第一个字符不是数字字符或者负号,parseInt()就会返回NaN。也就是说,用parseInt()转换空字符串会返回NaN。
parseFloat(string)
parseFloat(string)函数, 将字符串转换为浮点数类型的数值。
它的规则与parseInt基本相同, 但也有点区别: 字符串中第一个小数点符号是有效的, 另外parseFloat会忽略所有前导0,
如果字符串包含一个可解析为整数的数, 则返回整数值而不是浮点数值。
toString(radix)
toString(radix)方法。 除undefined和null之外的所有类型的值都具有toString()方法,
其作用是返回对象的字符串表示。
String(mix)
将任何类型的值转换为字符串, 其规则为:
如果没有toString()方法,
则调用该方法( 传递mix参数) 并返回结果。
将mix转换成原始的字符串,并返回转换后的值。
Boolean(mix)
Boolean(mix)函数,
将任何类型的值转换为布尔值。
以下值会被转换为false:
false、 “”、
0、
NaN、 null、 undefined,
其余任何值都会被转换为true。
隐式转换
“+” 运算符 (拼接)
"-"运算符 “ -” 可以是一元运算符( 取负) , 也可以是二元( 减法运算) 的