学习前端的第二十六天——ES5严格模式

今天对字符串回顾,然后做了一些练习,学习了ES5的严格模式和额外数组,还是直接展示今天的笔记吧



一、ES5严格模式

概念:

  • 除了正常运行模式外,ECMAScript5添加了第二种运行模式:“严格模式”(strict mode)。顾名思义,这种模式是JavaScript在更严格的条件下运行

作用:

  • 消除了JS语法的一些不合理、不严谨之处,减少—些怪异行为;
  • 消除代码运行的一些不安全之处,保证代码运行的安全;
  • 提高编译器效率,增加运行速度;
  • 为未来新版本的JS做好铺垫
  • 注意:同样的代码,在"严格模式"中,可能会有不一样的运行结果,一些在"正常模式"下可以正常运行的语句,在"严格模式"下将不能运行。

strict model 严格模式:

  • 全局模式 在当前作用域的最顶部设置字符串的 ‘use strict’ 在它下面的代码就进入严格模式
  • 布局模式 在函数内部设置字符串的 ‘use strict’ 在它下面的代码就进入严格模式

使用:

  1. 要求声明变量必须使用var关键字
  2. 通过函数名()形式调用函数,this无法指向window
  3. 函数的形参不能有重复的
  4. arguments对象不允许被动态的修改
  5. arguments.callee() 和 函数名称()是一样的

ES5新增数组:

forEach() 循环  对数组进行遍历循环,对数组中的每一项运行给定函数。这个方法没有返回值

//map可以改变当前循环的值,返回一个新的被改变过值之后的数组(map需return),一般用来处理需要修改某一个数组的值。映射
//map会把数据返回给外界,把它存储在数组里面
map(callback) :会遍历当前数组,然后调用参数中的方法,返回当前方法的返回值。

filter() 遍历和过滤。返回符合条件的元素的数组。filter需要在循环的时候判断一下是true还是false,是true才会返回这个元素。 

//注意:它只会返回第一次出现的数组元素的位置
indexOf() 查找数组里面的元素,如果有就返回对应的位置(下标)

//根据注意所示,也可以做到数组去重的效果
var arr = ['a', 'a', 'a', 'b', 'c', 'b', 'c', 'd', 'a'];
var res = arr.filter(function(item, index, arr){
    
    
    console.log(item, index);
    //     arr.indexOf('a') ==  0
    //                  0
    return arr.indexOf(item) == index;
})
console.log(res);



二、Math对象

  • Math对象是JS内置对象,JS内置好的对象直接使用,不需要关注怎么实现的
  • Math.PI :圆周率
  • Math.abs():绝对值
  • Math.ceil():向上取整(整数加1,小数去掉)
  • Math.floor():向下取整(直接去掉小数)
  • Math.round():四舍五入
  • Math.pow():x的y次方
  • Math.sqrt():平方根
  • Math.random():返回一个0到1之间的随机小数
    随机数公式:Math.random * (max-min) + min
    在这里插入图片描述

例子:

//求直角三角形斜边长  c*c = a*a + b*b
function getLong(a, b){
    
    
    //var c = a*a + b*b;
    var c = Math.pow(a, 2) + Math.pow(b, 2);
    //开平方
    c = Math.sqrt(c);
    return c;
}
var res = getLong(3, 4);
console.log(res);

//网页背景变色  十六进制的颜色值
var max = 999999;
var min = 100000;
var random = Math.floor(Math.random()*(max-min)+min);
document.body.bgColor = '#'+random;	

定时器:

  • 参数1是一个函数 参数2是时间
  • 回调函数:把函数本身当成参数给另一个函数使用,把这种情况叫做回调函数
  • 定时器可以让程序随着时间而改变,动态的做某些事情

语法:

setInterval(函数or代码,时间间隔)

//例子:网页背景换色
var max = 999999;
var min = 100000;
setInterval(function(){
    
    
	var random = Math.floor(Math.random()*(max-min)+min);
	console.log(random);
	document.body.bgColor = '#'+random;
}, 1000)

定时器累加问题:

  • 当多次点击按钮时,相当于是开启了多次定时器,点击关闭按钮时其实只是关闭了当前开启的定时器, 之前开起的定时器是没有关闭的,所以导致了定时器累加问题
  • 解决方案:先清除再开启 clearInterval();

猜你喜欢

转载自blog.csdn.net/Robergean/article/details/118195539