数据类型number之NaN与Infinity的认知
NaN( not a number )typeof NaN ==> number
isNaN() :
is not a number // 是不是(is) 不是数字啊?
//是数字 false
//不是数字 true
Infinity ---> number扩展出来的子对象
<!doctype html>
<html lang="en">
<head>
<!--声明当前页面的编码集:charset=gbk,gb2312(中文编码),utf-8国际编码-->
<meta http-equiv=$strIndex{1} content=$strIndex{2}>
<meta name="Keywords" content="关键词,关键词">
<meta name="Description" content="">
<title></title>
<style type="text/css">
*{padding:0;margin:0;}
</style>
</head>
<body>
<script type="text/javascript">
NaN 属于number数据类型 not a number 自己与自己不等
var a = 1,b;
alert(typeof(a+b));//NaN----->无法计算时在网页弹出NAN
alert(NaN == NaN);NAN自己与自不相等
isNaN的由来 数字-->$keywordIndex{2} 非数字--->$keywordIndex{3}
alert(isNaN("100"));--->当括号里面是""号时用Number()内置函数转换
当括号里面是数字时网页里面弹出flase,非数字时true
xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
Infinity---->无穷数--->是number扩展出来的子对象(数字除不尽的时候)
var num = -100/0;
alert(num);
ECMAScript中的最小数值保存在Number.MIN_VALUE中,这个值一般是5e-324,最大值保存在Number.MAX_VALUE中,这个值一般是1.7976931348623157e+308。如果某次计算超出了Javascript的数值范围,则这个数值自动转换成特殊的Infinity值,正值为Infinity,负值位-Infinity
例如:
2e-1=2*10`-1=2*0.1=0.2
2e+2=2*10`2=2*100=200
alert(Infinity-Infinity);//NaN
alert(Number.MAX_VALUE);
</script>
</body>
</html>
字符串'' ""
var str="xx"
alert(str+"====")
其中+=""是拼接符号而双引号里面则是要拼接内容
计算和拼接顺序
var str="123"
console.log(str+1+2)//12312
console.log(1+2+str)//3123按照前后顺序进行计算和拼接
当要输出在网页的文字双引号里面又包含了一个双引号时使用\或把里面的双引号变为单引号来转义
例如:var str="XXXX\"XXX"XX";
//if判断语句
if(boolean){
if体(程序代码)
}else{
else体(程序代码)
}
boolean---->判断(true,false)
&&(逻辑与 且) 与 ||(逻辑或) 的学习
逻辑与总结:只要条件有一个为false,那么就是false. 左右两边都为true的时候才为true.
逻辑或总结:只要条件有一个为ture,那么就是true.左右两边都为false的时候才为false.
例题:
if(!(34=='34') && 10<12){
alert(1);
}else{
alert(2);
}
(!(34=='34') !取反操作,真亦假,假亦真
Javascript中的falsely 与 truely
//惰性取值
falsely('' false undefined null NaN 0) 与 truely
var str = ''||0||false||undefined||null||NaN||10;当前面一个数为假时用||符号后面的数代替直到为真
alert(str)
验证input获取文本值是字符串
<!doctype html>
<html lang="en">
<head>
<!--声明当前页面的编码集:charset=gbk,gb2312(中文编码),utf-8国际编码-->
<meta http-equiv=$strIndex{1} content=$strIndex{2}>
<meta name="Keywords" content="关键词,关键词">
<meta name="Description" content="">
<title></title>
<style type="text/css">
*{padding:0;margin:0;}
body{padding:20px;}
input[type="input"]{width:240px;height:40px;}
input[type="button"]{width:40px;height:40px;}
</style>
</head>
<body>
<form action="#">
<input type="input" id="username"/>
<input type="button" value="点我" οnclick="clickme();"/>
</form>
<div id="result"></div>
<script type="text/javascript">
//例子 验证input获取文本值是字符串
function clickme(){
//获取输入框里面的文本内容
var value = document.getElementById("username").value;----->用id标记然后用value拿到该id输入框里面的内容
//alert(value+"==="+typeof value);
var resultDom = document.getElementById("result");
例题:判断输入框内容是否为真?
if(value){
alert("1");
}else{
alert("2");
}//1 解析:因为输入框内的文字都是字符串!不是假的
3//第一种方式
/*
if(value!="" && value.length>0){
resultDom.innerHTML = value;
}else{
resultDom.innerHTML = "请输入内容...";
}*/
/*第二种
if(value){//""
resultDom.innerHTML = value;
}else{
resultDom.innerHTML = "请输入内容...";
}*/
44
//第三种
resultDom.innerHTML = value;
};
</script>
</body>
</html>
switch语句
语法:
switch( ){
case 值:
语句;
break;
default:(最后执行语句,相当于else)
语句;
}
注意:程序语句读到break的时候才会结束。如果case语句后面没有带break,就会出现穿透。
例题:
var date = "星期一";
switch(date){
case "星期一":
console.log(date+"学习");
break;
case "星期二":
console.log(date+"运动");
break;
case "星期三":
console.log(date+"上班");
break;
case "星期四":
console.log(date+"电影");
break;
case "星期五":
console.log(date+"约会");
break;
case "星期六":
console.log(date+"打滚");
break;
default:
console.log(date+" 暂定");
}