基础

组成:

ECAMScript: 解释器 对javascript解释为机器可以读懂的语言

DOM:document object model 文档对象模型 提供给我们操作html 在js中即document

BOM:browser object model 操作浏览器 在js中即为window对象

JS基础

JS变量类型

  1. number 包括整形和浮点型
  2. string
  3. boolean true或者false
  4. function 函数也是类型
  5. object 对象类型

显示类型转换

parseInt() 将字符串转换为整形Num
parseFloat() 将字符串转换为float

这两种转换是从字符串左边开始转换直到遇到第一个不能转换的字符
number() 将字符串整体转为number类型 如果存在不能转换的字符 结果即为NaN
isNaN() 判断是否为NaN
Math.round() 四舍五入为取最接近的整数
在JS中NaN和NaN不相等

隐式类型转换

常用隐式转换

  1. == 会先进行隐式转换 然后比较 "5" == 5 true
  2. === 不转换类型 直接比较 "5" === 5 false
  3. "12"-"7" 结果为5 隐式转换了字符串为整形

闭包

控制语句

switch语句

var sex = "女"
var promot  
switch (sex) {
    case "男":
        promot = "先生您好"
        break;
    case "女":
        promot = "女士您好"
        break;
    default:
        break;
}
alert(promot)
>1.需要加break来阻止进入下一个case分支

boolean

真:
1. true
2. 非空字符串
3. 非空对象
4.
假:
1. false
2. 空字符串
3. null 空对象
4. undefine

json

var json = {a: 10, b: "anna", c: true}
alert(json.b)
alert(json["a"])

//json遍历
for (var key in json) {
    alert(key+"对应值"+json[key])
}

在js中json可以作为对象直接使用 可以正常对象属性进行关联

字符串

  1. 获取位置字符

    var str = "abcd"
    //获取位置1字符 即"b"  可能部分低版本浏览器不兼容
    var subStr = str[1]
    //获取位置1字符 即"b"
    var subStr = str.charAt(1)

数组

1.定义

var arr1 = [1, 2, 3]
var arr2 = new Array(1, 2, 3)

arr1.length

arr1.push(1) //尾部添加
arr1.pop() //尾部删除
arr1.shift()  //头部删除
arr1.unshift(44)  //头部添加

可以通过操作数组的length来操作数组中的元素(例如将length设置为0 就会清空数组)

2.添加、删除、切片

var arr1 = [1, 2, 3]
arr1.push(1) //尾部添加
arr1.pop() //尾部删除
arr1.shift()  //头部删除
arr1.unshift(44)  //头部添加

可以使用切片来执行 插入 删除 替换

    var arr1 = [1, 2, 3]
    arr1.splice(1,2) //删除数组中从第一个位置开始 2个元素 返回删除的元素数组
    arr1.splice(0, 1,"2a", "33b") //删除数组中从第0个位置开始 0个元素 然后从第0个位置开始插入 "2a", "33b" 两个元素 返回删除的元素的数组

连接 拼接

连接数组使用contact 而不是用 +(这是链接字符串的)
arr1.concat(arr2)

alert(arr1.join("--")) //1--2--3 拼接数组

排序

sort()方法排序 默认用排序字符串方法进行排序 即从左向右比较字符

自定义数字的排序

    //返回正数表示大于 返回负数表示小于 返回0表示等于
    arr1.sort(function(n1, n2) {
        return n1-n2
    })

2.遍历

var arr = [1, 5, "55"]
    
    for (var index = 0; index < arr.length; index++) {
        alert("第"+index+"个东西:"+arr[index])
    }

    for (var key in arr) {
        alert("第"+key+"个东西:"+arr[key])
    }

函数

return

参数

// 函数中arguments 为所有的传入参数数组
    function sumFunc() {
        return arguments[0]
    }
    alert(sumFunc(1,2,3))

js中的最后参数可以选择性不传 这时候arguments个数为不包括未传参数的所有参数个数

补充 获取非行间样式:
正常只能获取行间样式,若要获取css样式表中的样式

    var oDiv = document.getElementById("div1")
    var width
    if (oDiv.currentStyle) {
        // IE浏览器
        width = oDiv.currentStyle.width    
    } else {
        //chorme firefox
        width = getComputedStyle(oDiv, false).width
    }

获取样式 只能获取单一样式 不能为复合样式