JavaScript -basic
Basic JavaScript
Published: 2020-01-20

The article contains the basic knowledge of JavaScript…

Js简介

逐行解释,所以是脚本语言

解释型语言和编译型语言

解释型:边解释边执行

输入输出语句

Prompt、alert和console

console.dir

输出一个对象的所有属性和方法

document.writedocument.writeln

将字符串直接打印到浏览器

两者都是JavaScript向客户端输出的方法,对比可知写法上的差别是一个ln--line的简写,换言之,writeln 方法是以行输出的,相当于在 write 输出后加上一个换行符。

示例1:

document.write("你好")
document.write("你好", "世界")
document.write("你好", "世界", "!")
document.write(Date())

示例2:

document.writeln("你好")
document.writeln("你好", "世界")
document.writeln("你好", "世界", "!")
document.writeln(Date())

标识符、关键字、保留字

变量

只声明不赋值

不使用var声明直接使用

也是可以的,但是它会变全局变量

尽量不要使用name作为变量名

普通变量名没有声明直接使用会导致报错,但是name不会报错,说明name也是有特殊意义的,因此不能使用name做变量名

数据类型

八进制、十六进制

最大值、最小值

数值型三个特殊值

注意:这种写法也可以表示无穷大和无穷小

非数字(NaN)

isNaN()

字符串类型

单双引号嵌套

字符串转义符

字符串长度length

布尔型参与运算

Null、undefined和NaN分别和字符串与数字相加

注意:null和数字相加就等于数字,而undefined或者NaN和数字相加最后结果是NaN

Typeof

类型转换

转换为字符串

转换为数值型

转换为Boolean型

注意浮点数的误差

应该避免直接用浮点数参与运算

“===”比较运算符

短路运算(重要)

应用

中断自增运算

运算符优先级

Switch效率比if更高

If需要从上到下判断,但是switch直接跳到符合条件的行,效率更高

Switch中的变量

Chrome中的断点

Chrome中断点的watch的使用

数组

修改数组长度

注意:不要给数组名赋值,否则里面的数组元素就都没有了

案例

1、

2、

函数

声明方式

注意:第二种是匿名函数

函数参数问题

如果函数的实参数超过形参数,那么将取到形参个数

如果实参数小于形参数,那么大于实参数的形参将是undefined

Return

Js的return只能返回一个值

返回多个值

如果有多个值,返回最后一个,想要返回多值可以用数组实现

没有return的函数

返回undefined

Arguments

只有函数才有arguments对象 而且是每个函数都内置好了这个arguments。当我们不知道要传几个实参的时候就可以用arguments了

Arguments是js特有的,当我们的函数没有形参但是调用的时候给了它实参的时候可以通过arguments来获取所有实参。

可以使用for循环遍历arguments

注意:当我们调用多次该函数的时候,arguments能获取所有函数传过来的实参:

案例

伪数组

类似arguments传回来的就是伪数组

Js特有的全局变量

这个num2虽然在function内部,但是它没有用var声明,而是直接赋值了,那么在这种情况下num2也是全局变量

注意全局变量只有在浏览器关闭的时候才会被销毁,因此比较占内存

Js没有块级作用域

我们发现这个num也是可以打印的

变量声明初始化之前使用变量

结果:undefined

将函数赋值给变量,并在这个操作之前调用该变量

3问这个操作是不会出错的,4问是会出错的

原因:

举例说明:

1、

2、

3、

上述代码结果为undefined

4、

Js集体声明

注意var a = b = c = 9;这个写法相当于var a=9;b=9;c=9;会使得b和c变全局变量

对象

New关键字的原理

遍历对象

时间

数组

添加

删除

索引

转化成字符串

其他

基本包装类型

String

字符串的不可变

字符串的改变其实就是指针指向的改变,原来的字符串是一直存在的,因此不要频繁修改字符串或者拼接字符串

字符索引

根据位置返回字符

其他

简单类型和复杂类型

有个特殊情况 null