js高级第四天

一 严格模式(use strict)

(1)整个文件最开头加use strict

(2)函数内部最开头

(3)在es6中默认就处于严格模式

为什么要设置严格模式?

(1)消除js语法中,一些不合理,不严谨的地方,减少一些怪异的行为

(2)消除js代码的一些不安全之处,保证js代码运行安全

(3)严格模式可以比非严格模式下运行得更快

严格模式语法注意有很多:

(1)不允许遗漏声明,不带var

(2)不允许八进制:会报语法错误

(3)不允许把函数写在if中

(4)形参名不允许重复(声明同名的形参)

(5)不允许给对象声明相同的属性

(6)arguments和形参没有以一对应关系

(6)function中的this不再指向window

二.复习一些老知识

undefined出现:

访问对象中不存在的属性

访问数组中没有的元素

函数没有返回值

声明了没赋值

let的注意事项:

使用let不能提升

不能重新赋值,会报错

不能作为Windows对象的属性

let{}会形成一个块级的作用域

加var与不加var的区别:

1,在全局作用域下加var可以提升,不加var不能提升

2,在全局作用域下,加var与不加var都能作为window对象的属性

3,在局部的作用域下,不加var才能作为window对象的属性

4,不加var的只能作为全局变量,不能作为局部变量

5,加var的变量是不可以被删除的,不加var的变量是可以被删除的

三.递归函数

程序调用自己的编程技巧叫做递归。

把大型的问题层层简化,得到规模小的问题,然后在解决小的问题,再层层解决大的问题

递归函数:在一个函数内部,他自己又调用了自己,需要一个出口

function f(){

          f();//记得需要出口

}

记得解决这几个小例子

 利用递归思想,求100的累加
利用递归思想,求斐波那契数列中的第20项
利用递归思想,求数组中元素的和
利用递归思想,求1,3,5,7,9,... 的第N项的值。索引从0开始。
利用递归思想,求1,3,5,7,9,... 前N项的和
利用递归思想,求0,2,4,6,8,... 的第N项的值
利用递归思想,求0,2,4,6,8,... 前N项的和

猜你喜欢

转载自blog.csdn.net/zwy1231/article/details/103416471