JS学习笔记之数组、函数与作用域

一、数组

1.数组的创建

1)利用字面量创建数组

var 数组名 = [];

 

js中一个数组中可以同时存在多种数据类型。

数组长度:a.length

2)利用array创建数组

3)检测是否是数组

2.数组转化为字符串

 3.数组增加元素

1)push()

push()有个返回值-----》新数组的长度

2)unshift()

unshift()有个返回值-----》新数组的长度

 4.删除数组元素

1)pop()

删除数组最后一个元素------》数组.pop();

返回值是所删除的元素

2)shift()

删除数组第一个元素------》数组.shift();

返回值是所删除的元素

5.翻转数组以及对数组排序

6.数组索引号

7.数组去重

核心原理:拿着旧数组的元素去新数组中查询,(根据indexOf方法进行查询)

 8.数组转化为字符串

9.字符串转化为数组

 

二、函数

1.arguments的使用

2.函数的声明方式

1).利用函数关键字自定义函数(命名函数)

function fn(){} fn();

2).利用函数表达式(匿名函数)

var fun = function() {}

fun();

三、js作用域

1.js的作用域(es6以前)

全局作用域:整个script标签中或者单独的js文件

全局变量-----》特殊(函数中直接赋值的元素当成全局变量看

局部作用域(函数作用域):函数内部起作用

局部变量;函数的形参也可以看做局部变量

es6新增了块级作用域

2.js作用域链(就近原则)

 3.作用域中调用函数

外部调用函数时,只能一层一层调用,爷爷辈不能调用孙子辈的函数(暂时没感觉有什么错,以后学到了再更改)

4.js预解析(面试重点)

(1)js引擎运行js分为两个步骤,1.预解析,2.代码执行;

1)预解析:js引擎会把js里面所有的var以及function提升到当前作用域的最前面

2)代码执行:按照预解析之后的代码顺序进行执行

(2)预解析分为变量预解析(变量提升)和函数预解析(函数提升)

1)变量提升:把所有的变量声明提升到当前的作用域的最前面,不提升赋值操作

2)函数提升:把所有的函数声明提升到当前作用域的最前面 不调整函数

匿名函数var fun = function(){}相当于对变量fun进行赋值操作,只是赋的值是一个函数而已。所以提升规则相当于变量提升。

 函数内部直接赋值的变量:-----》是一个全局变量

 var a = b =  c = 9;相当于

var a;

a = b = c = 9;

其中a为函数f1中的局部变量,b,c为全局变量

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

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值