JavaScript
约 575 个字 54 行代码 预计阅读时间 3 分钟
JavaScript是用来控制网页的元素的,即实现动态网页。
JS和Java没有任何关系,但是相比于html和css js是真正普遍意义上的编程语言。
语法
基础
类型
JS 只有五类基础数据类型: * 布尔类型 * 数字,不区分整型和浮点 * 字符串,不区分单双引号 * NULL * Undefined
Note
undefined 表示声明了但是没有赋值;NULL表示不存在这个值
运算符
- 算术运算,对string有重载
- 比较运算符
定义变量
JS 使用 let
定义变量,JS语句需要使用;
来结尾,可以使用const
来定义常量,其实还可以使用var
,但是不建议用
注释
JS使用//
,和C/C++一样
数组
JS使用[]
表示数组,JS提供了pop
和push
以及length
等方法
输出
JS通常使用console.log(message)
,但是还有alert(message)
分支/条件语句
同C,并且是使用花括号区分代码块
函数
这个就比较特别,JS是使用=>
创建函数,格式为Syntax:(parameters)=>{body};
比如
const addTwo = x => {
return x + 2;
};
// JS 的回调函数语法,对应C语言中的函数指针
const modifyArray = (array, callback) => {
for (let i = 0; i < array.length; i++) {
array[i] = callback(array[i]);
}
};
let myArray = [1,2,3,4];
modifyArray(myArray,addTwo);
JS 允许创建匿名函数,比如上面的函数可以改写为
const modifyArray = (array, callback) => {
for (let i = 0; i < array.length; i++) {
array[i] = callback(array[i]);
}
};
let myArray = [1,2,3,4];
modifyArray(myArray,x => {
return x+2;
});
其它内置函数
map
map 会基于给定的函数和数组创建一个新数组,即建立一个映射,比如
filter
返回一个按照给定函数筛选之后的数组,比如
对象
数据对象
JS 中的对象是键值对name:value
的集合,比如
const myCar = {
maker : "China",
year : 2025,
color : "red"
};
console.log(myCar.maker);
console.log(myCar[`color`]);
// 这两种写法等价
const maker = myCar.maker;
const year = myCar.year;
// 不需要包含所有元素
const {maker, year} = myCar;
相等性
相等在 JS 里面特别“奇怪”,必须使用===
比较原始值是否相等,但是对于数组它是按名等价的,而不是按照实际内容。
实际上 JS 中的对象名相当于是C++中的引用(指针),它们指向存储数据的实际地址,比较相等实际上是比较地址是否相同,下面这个数组拷贝说明了这一点,直接用=
赋值数组是浅拷贝的,并没有开辟新的内存。
在 JS 中正确的深拷贝语法如下,有点像解包
其它编程语言中的相等==
在JS中用于检验类型转化后的值是否相同
类
这个真的和C++比较像,例子也是一样的,这里的this
是一个关键字
class Rectangle {
constructor(width,height){
this.width=width;
this.heoght=height;
}
getArea = () =>{
return this.width*this.height;
};
}