作用域

作用域

es6之前,全局作用域、局部作用域(函数作用域)

全局作用域

在script下定义变量

在函数内部没有声明直接赋值

局部作用域

在函数内部下定义变量

函数的形参也是局部变量

执行效率

1、局部变量只有在浏览器关闭时才会销毁,比较占内存

2、局部变量当我们执行完毕就会销毁,比较节约内存资源

作用域链

就因原则

JS引擎运行JS

预解析

变量预解析(变量提升)

把var提到最前面,值不提

函数与解析(函数提升)

把函数声明提升到作用域最前面

代码执行

创建对象的三种方法

无序的相关属性和方法的集合

对象字面量创建对象

花括号{}里面包含了这个具体事物的属性和方法

形式:

var 对象名 = { name = ’ ‘, age = ’ ‘ }

调用:

对象名.属性名

对象名['属性名']

利用new Object创建对象

var 对象名 = new Object();

对象名.uname = ’ ‘;

对象名.age = ’ ‘;

调用:

对象名.属性名

对象名['属性名']

构造函数创建对象

function 对象 (属性1,属性2,属性3){ this.属性1 = 属性 this.属性2 = 属性 this.属性3 = 属性 }

var 对象名 = new 对象 (属性1,属性2,属性3)

显示函数中的所有值

for (var k in 对象){ console.log(k); 得到 属性名 console.log(obj[k]); 得到 属性值 }

JS内置对象

Math对象

JS中自带的一些对象,直接可以拿来使用的,

Math.PI 圆周率

Math.floor() 向下取整

Math.ceil() 向上取整

Math.round() 四舍五入 .5时找最大值

Math.abs() 绝对值

Math.max()/Math.min() 最大值和最小值

日期对象

构造函数,需要new

用来处理日期和时间

当前时间

var date = new Date();

var year = date.getFullYear();

var month = date.getMonth() + 1;

var dates = date.getDate();

var arr = ['星期日','星期一','星期二','星期三','星期四','星期五','星期六']

var day = date.getDay();

console.log('今天是:' + year + '年' + month + '月' + dates + '日 ' + arr[day]);

获得总毫秒数,当前毫秒数

1、

var date = new Date();

console.log(date.valueOf()); 距离1970.1.1总的毫秒数

console.log(date.getTime());

2、

var date1 = +new Date(); 常用

3、H5新增

console.log(Date.now());

倒计时

function countDown(time) {

var nowTime = +new Date();

var inputTime = +new Date(time);

var times = (inputTime - nowTime) / 1000;

var d = parseInt(times / 60 / 60 / 24);

d = d < 10 ? '0' + d : d

var h = parseInt(times / 60 / 60 % 24);

h = h < 10 ? '0' + h : h

var m = parseInt(times / 60 % 60);

m = m < 10 ? '0' + m : m

var s = parseInt(times % 60);

s = s < 10 ? '0' + s : s

return d + '天' + h + '小时' + m + '分钟' + s + '秒'

}

console.log(countDown('2021-12-13 14:00:00'));

检测是否为数组

var arr = [];

console.log(arr instanceof Array);

console.log(Array.isArray(arr)) ie9以上

添加/删除数组元素

添加

push

在数组后面添加元素

数组名.push()

unshift

在数组前面添加元素

数据名.unshift()

删除

pop

删除数组中最后一个元素

数组名.pop()

shift

删除数组中第一个元素

数组名.shift()

数组对象

数组排列

翻转数组

数组名.reverse();

冒泡排序

数组名.sort(funtion(a,b){ return a - b; 升序排列 return b - a; 降序排列 });

数组索引

查找元素位置

数组名.indexOf('元素') 从开头开始

数组名.indexOf('元素',查询起始位置)

数组名.lastIndexOf('元素') 从结尾开始

查找没有则返回-1

转换为字符串

toString() 把数组转换成字符串,逗号分割每一项

join('分隔符') 把数组中的所有元素转换成为一个字符串

字符串对象

基本包装类型

把简单数据类型包装成复杂数据类型,用一个temp过度,所以,基本数据类型也有了属性和方法

字符串的不可变

每次赋值都是用一个新的内存空间,原本的字符串内容不会有变化

根据字符串返回位置

例:

var num = 'aobcosduofho';

var index = num.indexOf('o');

while (index !== -1) {

console.log(index + 1);

index = num.indexOf('o',index + 1)

}

根据位置返回字符

数据名.charAt(位置) 返回指定位置的索引号

数据名.charCodeAt(位置) 返回指定位置的ASCLL码

数据名[位置] H5新增

字符串操作方法

concat('字符串1',’字符串2‘...) 衔接连个字符串成一个

substr(截取的起始位置,截取几个字符) 截取对应位置,对应长度的字符串

replace(’a‘,’b‘) 把字符串中的a替换成b,只替换一个

split(’分隔符‘) 字符串转换为数组

简单类型与复杂类型

简单类型(值类型)

string、number、Boolean、undefined、null 放在栈中 对象 — 栈

复杂类型(引用类型)

通过new创建对象,Object、Array、Date 放在堆中 对象 — 栈(地址)—堆

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值