js入门(9)

变量

1.什么情况下 报错 xxx is not defined 某变量未定义

2.xx is not a function 某函数未定义

变量的使用规则

第一步:在哪里用的?代码是否执行了

在当前作用域中找是否有var 声明了该变量:

如果有,再看在当前作用域中,离他最近的一次赋值是什么,那就用什么值

如果没有,就去上一层作用域中找,看是否有var 声明该变量,直到找到window下为止

window 下没有 报错 xxx is not defined

总结:第一步在作用域中找var,第二步往上找 最近的赋值

window全局

window 全局对象 底层是global

1.window 对象在什么时候生成的?页面加载的时候

2.有几个window? 一个,只有一个全局环境

3.window 与script 标签个数无关

作用域

什么是作用域?

作用域指的是程序运行代码声明变量的区域

作用域决定了如何查找变量,也就是当前执行代码 使用变量的权限,或者说 当前执行代码 使用变量的赋值是什么

js中采用的是静态作用域 与执行环境无关 与声明有关

作用域的分类:全局和局部

全局相对浏览器,window 对象下所有内容都是全局的,访问权限在任意代码处

局部作用域:函数方法内部声明的变量,访问权限在方法体内

数组去重的方法

确定形参

确定结果:返回新数组,新数组是不重复的数据,数据源不变

var array = [1,1,2,2,2,3,2,2]

​ function unique(array){

​ var res = [];

​ // 验证res 中是否存在 array数组中元素

​ for(var i=0;i<array.length;i++){

​ // j===resLen 循环执行完毕 都没有执行break

​ // —> 当前的arr[i] 不重复

​ for(var j=0;j<res.length;j++){

​ // 如果res 中有arr[i]

​ if(array[i] === res[j]){

​ break;

​ }

​ }

​ if(j === res.length){

​ res.push[array[i]]

​ }

​ }

​ return res;

​ }

​ console.log(unique(array))

数组排序

// sort() 数组排序 不修改

// 确定形参:被排序的数组 参二 控制升序和降序

// 返回排序后的数组

​ ar arr = [2,3,1,2,4,5]

​ function sort(array,callback){

​ for(var i=0;i<array.length;i++){

​ for(var j=i+1;j<array.length;j++){

​ if(array[i]<array[j]){

​ var tmp = array[i];

​ array[i] = array[j]

​ array[j] = tmp

​ }

​ }

​ }

​ return array

​ }

​ console.log(sort(arr));

​ console.log(arr);

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值