1.NaN
1) NaN 属性代表非数字值的特殊值.用于指示某个值不是数字.
2) 方法parseInt()和parsefloat()再不能解析指定的字符串时就返回这个值.
3) 用isNaN()判断一个值是否是数字 因为,NaN与所有值都不想等,包括它自己.
2.转换规律
1) if("") 中 " "相当于false;任何非空的字符串,都可以在判断中装换为true
2)数字对象number, 除了NaN,+0和-0.其他都转换为true.
alert(11>3);//true //当运算符两端 , 一端是数字,一端是其他类型时,
其他类型会自动向数字类型转换
alert("11">3);// true
alert(11>"3");//true
//字符串在进行比较时 ,规律是: 比较首字符asc码. 如果一样,比较第2位...
```
alert("11">"3");// false
alert("11">"1");// true
alert("abc">11);//false
```
3)null===>false undefined===>false 因为因为undefined是null衍生出的,所以 ,alert(undefined == null);判断结果为 true
3.函数function()
1)定义方式一
函数对象的构造方法中,最后一个参数是定义函数的体.之前所有参数都是定义函数的参 数
var fun2 = new Function("a","b","alert(a+b);");
调用方式:==>fun2( 1,5 ); ==>fun2( "1","5" );
2)定义方式二
var fun3 = function (){
alert('bbb');
}
调用方式:fun3();
3)定义方式三
function fun1(){
alert('aaa');
}
调用方式,直接显示函数代码:===>alert(fun1.toString());
4)函数的重载
js中函数的调用只看函数名称.不看参数列表
function fun2(){
alert(arguments[0]); // 获得第一个实际参数
}
//函数中的内置对象 arguments
//arguments ==> 代表函数运行时的实际参数列表.
调用:
fun2(); //0 undefined
fun2(1,2); //2 1
fun2(1,2,3); //3 1
// js中存在函数的重载吗? 如何重载?
function fun3(){
alert('aaa');
}
function fun3(a){
alert('bbb');
}
//如上不能重载,是覆盖
function fun4(){
if(arguments.length == 2){
alert(arguments[0]+arguments[1]);
}else if(arguments.length == 3){
alert(arguments[0]+arguments[1]-arguments[2]);
}
}
调用方式:
fun4(1,2);//3
fun4(1,2,3);//0
//以上是重载.
5)return void 的使用
**1//使用return 关键字,返回内容
function fun2(a,b){
alert('fun2');
return a+b;
}
alert(fun2(1,2));//3
**2 //return 关键字,在js中也可以作为结束方法运行的功能.
function fun3(){
alert('aaa');
return ;
alert('bbb');
}
4.parseInt()的使用 和 Global对象
**1 var str = "123abc";
//1.使用 +
//2.使用 new Number()
//3.parseInt
//alert(typeof parseInt(str));//number
alert(+str); //NaN
alert(new Number(str));//NaN
alert(parseInt(str));// 123
//区别: 1,2两种转换属于将字符串整体进行转换.如果字符串中包含1个或以上转换不了的 字符,返回NaN
3 从左到右 依次转换,能转一个是一个,直到遇到不能转换的值停止.
// parseFloat 转换成浮点数
//与上面的parseInt一样.区别是支持转换小数
var str = "3.1415.9265357";
alert(parseInt(str));// 3
alert(parseFloat(str));//3.1415
**2.Globle对象
可理解为全局对象,也是已经预定义好的对象
还有全局方法:decodeURI() ,encodeURI() , decodeURIComponent(), encodeURIComponent(),isFinite(), isNaN(),eval()
类似java中的静态方法.
5.数组
1).创建方式
//1>创建方式1 创建一个数组并初始化值
var arr1 = ["abc",2,true,null,undefined,new Object()];
//2>创建方式2 同方式1
var arr2 = new Array(1,2,3);
//3>创建方式3 ==> 创建一个长度为3的数组. 数组Array的构造函数,如果只传一个参数,并且 这个参数是整数.那么这个整数就是数组的初始化长度.
var arr3 = new Array(3);
2)js中数组的特点:
//1.js中的数组,类型任意.
//2.数组的长度不是固定的.用到哪里,就有多长.
arr3[8] = 10;
alert(arr3.length);//9
alert(arr3[6]);//undefined
3)方法
//sort方法 ==> 排序的方法.
//注意: 该方法默认排序规则,按照字符串规则排序.
//如果需要按照数字排序,需要准备一个比较器.
var arr5 = [2,9,3,100,5,7,1];
alert(arr5.sort(abc))//
//函数对象==> 比较器
function abc(a,b){
/* if(a>b){
return 1;
}else if(a==b){
return 0;
}else{
return -1;
} */
return a-b;
}
6.Date
//Date对象
/* 1.new Date() 获取当前时间
2.getFullYear() 获取年份
3.getMonth() 获取月份注意 1月份结果为0
4.getHours() 小时
5.getDate() 日期
6.getMinutes() 分钟
7.getSeconds() 获取秒
8.getTime() 获取毫秒值.
9.toLocaleString() 获取本地的时间格式字符串.
10.getDay();获得星期
*/
//空参构造获得当前时间
var date = new Date();//当前时间
//填入毫秒数,获得毫秒数对应的时间
var date2 = new Date(10000000000000);
/* alert(date.getFullYear());//
alert(date.getMonth());//
alert(date.getHours());//
alert(date.getDate());//
alert(date.getMinutes());//
alert(date.getSeconds());//
alert(date.getTime());//
alert(date.toLocaleString());//
alert(date.getDay());// */
//注意:
//1.月份计数时是0~11月,所以要加1获得正常月份
//2.星期计数是 0~6 .
**科普一下**hc就是head count的缩写,意指企业预计招聘的员工人数的意思。
//Date对象
/* 1.new Date() 获取当前时间
2.getFullYear() 获取年份
3.getMonth() 获取月份注意 1月份结果为0
4.getHours() 小时
5.getDate() 日期
6.getMinutes() 分钟
7.getSeconds() 获取秒
8.getTime() 获取毫秒值.
9.toLocaleString() 获取本地的时间格式字符串.
10.getDay();获得星期
*/
//空参构造获得当前时间
var date = new Date();//当前时间
//填入毫秒数,获得毫秒数对应的时间
var date2 = new Date(10000000000000);
/* alert(date.getFullYear());//
alert(date.getMonth());//
alert(date.getHours());//
alert(date.getDate());//
alert(date.getMinutes());//
alert(date.getSeconds());//
alert(date.getTime());//
alert(date.toLocaleString());//
alert(date.getDay());// */
//注意:
//1.月份计数时是0~11月,所以要加1获得正常月份
//2.星期计数是 0~6 .