变量
-
声明变量
- 通过var关键字声明变量
- 可以声明变量的同时给变量赋值
- 可以一次声明一个变量也可以一次声明多个看变量
- 如果只声明变量未对其赋值,默认值为undefined
- 如果变量重名产生覆盖
- 注意
- 变量严格区分大小写
- 变量名称不要包含特殊字符
- 变量名称最好遵循驼峰标记法或者下划线法
- 变量名称最好含义明确
-
变量在内存中的存储与释放
- 收集方式
- 收集内容
- 回收算法
原始数据类型(与c++相似)
- 数值型
-
十进制数
-
十六进制
- 0x0
0XABCDEF
0x1a2b3c4d
- 0x0
-
八进制数
- 00
0123
0241234
- 00
-
特殊值
-
Infinity无穷大
-
NaN
0/0
可以通过isNaN()检测值是否为NaNNaN是唯一一个不能和自身做比较的值
-
- 字符串型
- 定界符
- 转义符
- 布尔类型(不能写成大写形式)
true|false
-
转义符:
1、如果要定义一个: king‘s的变量,不能写成var username = ’ king’s ’ 会报错,要定义成:var username = “ king’s ” 单引号变成双引号.
2、
var txt="we are "伐木累" from runningman";
document.write(txt);
上述字符串将被截成:we are
要解决这个问题,就要在 “伐木累” 中的两个引号前面加上反斜杠" \ ",这样的用法会把每个双引号转换为字符串
var txt="we are \"伐木累\" from runningman";
document.write(txt);
上述字符串就能正常输出:we are “伐木累” from runningman
代码 | 输出 |
---|---|
\ ’ | ‘ |
\ " | " |
\ & | & |
\ \ | \ |
\ n | 换行符 |
\ r | 回车符 |
\ t | 制表符 |
\ b | 退格符 |
\ f | 换页符 |
\ n 例子:
<script>
var str2='a\nbcd';
alert(str2);
</script>
特殊数据类型
-
无定义数据类型undefined
-
空值null
-
null表示空值,表示什么都没有,相当于一个占位符。
-
null和undefined的区别就是undefined表示变量未被赋值,而null表示变量被赋予了一个空值。
-
类型转换
-
隐式转换
-
转换成布尔类型假
undefined->falsenull->false
var a;//变量类型为undefined //alert(typeof a); 会出现undefined的窗口,typeof得到变量的类型 a = null;//或者a = undefined / 0 / 0.0 / NaN / ' ' ; if (a){ alert('真'); } else{ alert('假'); } //都会出现"假"的窗口 //a = '0'-->不是空字符串,会显示"真"
-
转换为数值型数据
var b = undefined;//undefined->NaN 弹出窗口,显示“NaN” b = null;//null->0 弹出窗口,显示“1” b = true;//true->1 弹出窗口,显示“2” b = false;//false->0 弹出窗口,显示“1” alert(1+b);//这个是转换数值型数据的关键 //如果是alert(b);网页会弹出字符串类型的值 var c = '12';//弹出窗口,显示“12” c = '3king';//弹出窗口,显示“NaN” c = 'true';//弹出窗口,显示“NaN” alert(c*2);//这个是转换数值型数据的关键 alert(c+1);//c = '3king'会弹出:3king1,因为是拼接字符串
alert(1+b);
alert(c*2);
-
转换为字符串型数据
document.write(undefined); document.write('<br/>'); document.write(null); document.write('<br/>'); document.write(NaN); document.write('<br/>'); document.write(123); document.write('<br/>'); document.write(true); document.write('<br/>'); document.write(false); document.write('<br/>');
-
-
document.write(1+1);//显示“2”
document.write(1+'1');//显示"11"
alert(1+'1');//拼接字符串
alert('2'+12);//拼接字符串
-
显示转换
-
转换成数值
-
Number函数强制转换成数值
数值->转换成原来的值
字符串->如果可以解析为数值,则转换成数值;否则转换成NaN或者0
true->1,false->0
undefined->NaN
null->0var test = Number(true); alert(test); var test = Number(123); alert(test); //字符串类型 var test = Number('123'); alert(test); var test = Number('3king'); alert(test);
-
- 转换成整型
praseInt() - 转换成浮点型
praseFloat() - 注意
Number函数将字符串转换为数值比praseInt函数严格很多。基本上只要有一个字符无法转换成数值,整个字符串就会被转换成NaN
-
转换成字符串
-
通过String函数转换成字符串
数值->数值本身
字符串->字符串本身
true->“true”,false->“false”
undefined->“undefined”
null->“null”var test = String(NaN); alert(test);
- 转换成字符串型
toString()
-
-
转换成布尔类型
-
通过Boolean函数强制转换成布尔值
下面这些情况会转换成false:
0、-0、0.0 ->false
NaN->false
空字符串->false
undefined->false
null->falsevar test = Boolean(NaN); alert(test);
-
-