js变量是弱类型,通过赋值决定变量的类型。

一、JS基本数据类型

1.Number(数据类型)

(1) 整数型
var n = 10

(2) 浮点型
var n = 1.1

(3) NaN 非数字型
isNaN() 判断时先转换为Number类型

注意点:NaN != NaN


判断小数OR整数的方法:
var a = 100 ; var b = 3.14 ;
(1) parseInt(b)==parseFloat(b);
(2) parseInt(b)


判断是否为数字
(1)typeof a == "number" && a == a
因为NaN==NaN为false。
(2)var b=Number(a) if(isNaN(b))

2.String(字符串)

字符串是由单引号或双引号引用的一串字符。

  • 字符串的常用属性:

    var str="hello world!";
    var s="xxx";
    str[0];//通过下标获取某个位置的字符
    str.length;//获取字符串的长度

  • 字符串的常用方法:

    str.charAt(i);//通过下标 i 获取字符串第 i 个字符。
    str.charCodeAt(i);//返回指定位置 i 的Unicode编码。
    String.fromCharCode(65);//A。通过编码获取对应的字符。(常用编码)点击查看例子
    str.indexOf(s);//返回某个指定的字符串在原字符串中首次出现的位置;如果找不到返回-1;其中s可为多个字符。
    str.indexOf(s,num);//有两个参数,第一个参数指要查找的字符串,第二个是从什么位置开始查找。num为负值时,从0开始查找。
    str.lastIndexOf(s,num);从末尾往回找。
    str.substring(i);//截取从位置 i 到最后的字符。
    str.substring(startIndex,endIndex);//截取内容:[startIndex,endIndex);如果startIndex>endIndex,会将endIndex看成startIndex;如果出现负值,则被看成0;
    str.slice(startIndex,endIndex);//截取;负值慎用!
    str.search(s);//查找字符串s在字符串str中的位置,如果找不到返回-1;(常用于模糊搜索)
    var a=str.split(s);//将字符串str通过指定的分割符s分割成新的字符串,并保存在数组中返回。无参则将整个字符串str保存在数组中。
    a.join(s);//将数组里的每个值用连接符s连接成字符串并返回。无参则默认连接符为逗号","。
    eval(str);//去掉字符串的双引号或数组的中括号[];参数str只能是字符串或数组,不能识别json。原str不受影响。(用于ajax)
    str.match("s");//查找s,放回数组["s",indext(下标):1,input:原字符串str],找不到返回null。(正则表达式。)
    str.toLowerCase(); str.toUpperCase();//转化为大小写

3.Boolean(布尔型)

1.[],"",null,0,undefined --> false;
2.ture为非零,false为0;

4.Null

表示值为空。

注意:null == undefined为true

5.undefined

表示没有初始化(有var定义),但并没有报错。未定义时才会报错(not defined);

二、JS引用数据类型

1.function函数

  • 声明函数

    function 函数名(形参){ 函数体 } (函数参数不需要声明)

  • 调用函数

    函数名(实参);

  • 函数同名,后面的会把前面的覆盖,不同参数个数也会被覆盖。

  • 函数可设置返回值。return XXX;函数遇到return就会结束,不会再执行return后面的语句。

  • 若函数被变量接收,如var f=fun(); (函数fun返回值是一个函数),调用时f();或fun()();

  • arguments 实参集合:JS中的一个特殊对象,但实际上是当前函数的一个内置属性。

    (1)函数参数个数不确定时,就不写(实参个数不能少于形参个数,否则会报错,反之可以!)
    (2)参数与局部变量同名,就是同一个变量。
    (3)arguments[0]=3;相当于给第一个参数赋值3.
    (4)可利用该属性判断传入参数个数:arguments.length

  • 函数详细知识点

2.Object对象

window , document , json , Array都属于Object对象。

  • Date 日期对象
  • Math 数学对象
  • RegExp 正则对象

3.json

  • json是通过键值对来存取的。
    存:var json1={ "name":"HYH", "age":23};
    json 数据包含在花括号{}中,每个键值对用逗号","分隔。
    取:var name=json1.name;

  • json没有长度,需用for in来遍历其数据。
    for( var key in jsonName){
    console.log(key+":"+jsonName([key]));
    }

    key:通过什么存的,就返回什么值。

  • for in也可用于数组,只是遍历数组一般不用这种方法。

4.Array数组

  • 字面量方式创建
    //var arr=[1,2,3];arr[4]=4;可直接通过下标来改变数组。(arr=[1,2,3,undefined,4])
    //arr.length=2;也可通过改变数组长度来改变数组。(arr=[1,2])数组可存储任意数据类型,包括函数,json,对象。
    //var arr=[{"name":"HYH"},function(){alert("aaa")}]取:var str = arr[0].name ; 调用:arr[1]();
  • 构建函数创建
    var arr1=new Array();
    var arr2=new Array("a",1,3,"b");
    var arr3=new Array(5);//[ undefined x 5 ];
    var arr4=Array("A");//可忽略关键字new。
  • Array常用方法