一、Number类型
1、分类
1.1 整数、浮点数
浮点数溢出(如0.1+0.2 = 0.3是错误的)
解决方法:把浮点数转成整数,再除一个10,如:(1+2)/10
1.2 三种进制
1.3 科学计数法
1.4 Number.MAX_VALUE和Number.MIN_VALUE
1.5 Infinity和-Infinity
1.5.1 关于infinity的计算:加减乘除一个数都是infinity; 自身加乘为 infinity;自身减除为NaN;
1.5.2 关于infinity的比较:与自身相等,其余正常比较;
1.6 NaN(not a number)
1.6.1 与任何值进行比较都返回false;
1.6.2 与任何值进行运算都为NaN;
1.6.3 isNaN()方法:检测是否为非纯数字
检测前会先把传入的参数转换为number类型。 (tip:空字符串、空格字符串 转为number都是0)
返回false:为纯数字
返回true:为非纯数字
isNaN()的应用。example:要求用户键入电话号码
//1、获取元素
var oIpt = document.getElementById("ipt");
var oBtn = document.getElementById("btn");
//2、创建点击事件
oBtn.onclick = function() {
//3、获取并判断元素中的值是否为空
if(oIpt.value.length == 0) {
alert("电话号码不能为空!");
} else if(isNaN(oIpt.value)) {
//4、判断是否为NaN
alert("请输入合法的电话号码!");
} else {
alert("成功!");
}
}
2、类型转换为Number的方法
法一:Number()方法强制转换
1)、number—>number:转为10进制,NaN和Infinity为本身。
2)、string—>number:
2.1) 纯数字的字符串直接转为number;
2.2) 进制转为十进制 (8进制由于是以0开头的,导致有些浏览器会把它当成十进制直接转为number,所以为了统一,写8进制的时候要注明; (如:将8进制的a转换number:console.log(Number(a,8)););
2.3) 只要含有非数字(除进制标识、Infinity、科学计数法以外)都是NaN;
2.4) 空字符串' '、空数组[ ]、空格、null、false都转为0;
3)、Boolean—>number:1或0
4)、undefined—>number:NaN
5)、null—>number:0
6)、object—>number:
6.1) 空数组为0;
6.2) 仅有一个值的数组把那个值转为number;
6.3) 其余都为NaN(包括对象);
7)、总结:
-
空字符串' '、空数组[ ]、空格、null、false ——>0;
-
{ }、undefined ——>NaN
法二:parseXxx()方法
parseInt()方法
1)、从左往右依次扫描,遇到非数字(包括小数点)则跳出, 输出非数字之前的合法数字。如:parseInt("24a8u0");输出24
2)、以0x开头的输出为16进制
3)、parseInt()支持基模式:把不同进制的数转为十进制
可以转为其它特殊进制,利用,号隔开。如:
// 特殊情况如下:
// 没有1进制的1、0;有0进制的1、0 。
console.log(parseInt(1,1));//NaN,1进制的1是NaN
console.log(parseInt(0,1));//NaN,1进制的0是NaN
console.log(parseInt(0,0));//0,0进制的0是0
console.log(parseInt(1,0));//0,0进制的1是1
4)、parseXXX只能转换数字或字符串为number, 不能转换其它类型的值(如null、true等)
parseFloat()方法
1)、与parseInt()类似,但是不能转换数字
2)、从左往右扫描,扫描到的第一个点当成小数点, 之后遇到非法数字则跳出(包括第二个点)
法三:利用算数运算隐式转换
1)、乘1
2)、除1
3)、减0
二、String类型
1、分类
1)、字符串直接量
使用单双引号都可以,不能同类嵌套使用;可以单双嵌套;
在ES3中,字符串必须在一行书写,换行不允许, 如果要显示换行,需要添加换行符(\n); 在ES5中,写代码时允许字符串换行写(不是多行显示在浏览器,如果多行显示 需要\n),实现方法:在换行处添加一个反斜杠;
var str = "今天天气\
真好,\
我打算\
去学习。";
字符串中每一个字符都有固定的位置,第一个字符的位置是0;
2)、转义字符(添加反斜杠)
" 表示“。' 表示‘。
\r 是回车=return,使光标到行首。
\n 是换行=newline,使光标下移一格。
\t 制表符 = 按一个table建。
\ 打印出\。
2、相关操作
1)、拼接:利用+号拼接字符串与其它。(字符串+其它)
2)、获取长度:str.length属性
3)、在ES5以上,可以对字符串进行数组的相关操作,读取下标等。
4)、Example:判断用户提交的信息是否正确
//1、获取元素
var oUser = document.getElementById(user);
var oPwd = document.getElementById(user);
var oBtn = document.getElementById(user);
//2、创建点击事件
oBtn.onclick = function() {
//获取元素里的值
var uName = oUser.value;
var uPwd = oPwd.value;
//判断是否为空
if(){
}
}
3、类型转换为String的方法
法一:String()强制类型转换
1)、null—>String:转为"null"
2)、undefined—>String:转为"undefined"
3)、unmber—>String
3.1) 非十进制先转换为十进制
3.2) 其它值直接转成相应的字符串
4)、Boolean—>String:转为true或false
5)、object—>String
String([])—>""
String([1])—>"1"
String([1,2])—>"1,2"
String([1,010])—>"1,8"
String({})—>"[object Object]"
法二:对象或值的toString()方法
1)、非string会隐式调用String()方法
2)、unll和undefined没有toString()方法
3)、其它与String()类似
三、Boolean类型
1、类型:true、false
2、转换为Boolean类型
1)、unll—>boolean:false
2)、undefined—>boolean:false
3)、number—>boolean:除了0和NaN,其它都为true。
4)、string—>boolean:空字符串为false。其余为true(包括字符串0:"0",包括空格字符串:" ")。
5)、object—>boolean:都为true。
6)、Example:若input为空则把边框变红。
oBtn.onclick = function() {
//获取元素中的值
//if判断值是否为空(3种写法)
//元素.style.borderColor = "red";
}
四、操作符
1、分类
1)、一元运算符
1)自增
2)自减
2)、二元运算符
1)逗号
3)、三目运算符