JavaScript
本文最后更新于 2254 天前,其中的信息可能已经有所发展或是发生改变。

在HTML<head>的中添加以下语句来引入.js 文件

<script src=”…”></script>

 

在JS中 if 语句,循环语句和C 几乎一样

这是JS 中的赋值,单个语句用分号结束

var x = 1; var y = 2;
i = 0;  //这些初始化变量会使得 i变量成为全局变量

 

JS也可像Python一样用 加号(+)将多个字符串连接起来,或者用模板字符串

使用模板字符串
var name = '小明';
var age = 20;
var message = `你好, ${name}, 你今年${age}岁了!`;

 

JS中也含有类似Python字典的对象数组

对象
var person = {
    name: 'Bob',
    age: 20,
    tags: ['js', 'web', 'mobile'],
    city: 'Beijing',
    hasCar: true,
    zipcode: null
};
person[name]
person.name   //另一种访问键值对的方法
//它的键只能为字符串类型,用 map , set 可以使用其他类型的键

Map, Set

var m = new Map([['Michael', 95], ['Bob', 75], ['Tracy', 85]]);
m.get('Michael'); // 95(获取值)
//map使用,它的本质是二位数组

set 类似 列表
var s2 = new Set([1, 2, 3]); // 含1, 2, 3

数组的操作

[1, 2, 3.14, 'Hello', null, true];
另一种创建方式
new Array(1, 2, 3); // 创建了数组[1, 2, 3]

var arr = [1, 2, 3.14, 'Hello', null, true];
arr.length;  //返回arr数组的长度,可直接对其赋值改变数组大小
arr.indexOf('Hello')   //返回'Hello'在 arr中的位置,若找不到则返回0
arr.slice(0 ,3)    //数组的截取,类似于python的 [0:3]
arr.shift()  //删除第一个元素
arr.pop()   //把最后一个元素删除
arr.push('123')  //类似于 append('123')
arr.unshift('321') //添加至数组首
arr.sort()   //排序
arr.join()  //将数组中的元素用括号中的字符连接起来
arr.concat([1,2,3])  //合并两个数组

for循环拓展

var a = ['A', 'B', 'C'];
for (var x of a)   // 遍历 a 的元素
{
    console.log(x);
}

for (var x in a)   // 遍历 a 的索引
{
    console.log(x);
}

定义函数

function abs(x) {
    if (x >= 0) {
        return x;
    } else {
        return -x;
    }
}

如果没有return语句,函数执行完毕后也会返回结果,只是结果为undefined(类似于Python的None)。

在定义函数时JS内部可以使用一个名为 arguments 的数组,它包含所有调用该函数时传入的参数。

function foo(a, b, c) {
    if (arguments.length === 2) {
        // 实际拿到的参数是a和b,c为undefined
        c = b; // 把b赋给c
        b = null; // b变为默认值
    }
}

但是,arguments 不利于获取多输入的参数,于是有了 …rest  参数

function foo(a, b, ...rest) {
    console.log('a = ' + a);
    console.log('b = ' + b);
    console.log(rest);
}

foo(1, 2, 3, 4, 5);
// 结果:
// a = 1
// b = 2
// Array [ 3, 4, 5 ]

foo(1);
// 结果:
// a = 1
// b = undefined
// Array []

方法

在对象(字典)中嵌入函数在JS中叫方法

var xiaoming = {
    name: '小明',
    birth: 1990,
    age: function () {
        var y = new Date().getFullYear();
        return y - this.birth;
    }
};//这个方法可以动态地显示年龄

this 类似于 self 它表示它的父级类,在上述例子中 this表示 xiaoming 类 对象

可以用  apply 来改变this的指向

apply接收两个参数,第一个参数就是需要绑定的this变量,第二个参数是Array,表示函数本身的参数。

function getAge() {
    var y = new Date().getFullYear();
    return y - this.birth;
}

var xiaoming = {
    name: '小明',
    birth: 1990,
    age: getAge
};

xiaoming.age(); // 25
getAge.apply(xiaoming, []); // 25, this指向xiaoming, 参数为空

 

上一篇
下一篇