当前位置: 首页 > news >正文

Harmony鸿蒙开发0基础入门到精通Day02--JavaScript篇

【继续上个章的内容,让我们继续学习JavaScript。】

JavaScript基础

函数(续)

函数的作用域

变量作用域:全局和局部。

函数中的变量只作用于函数当中。

var n = 200//全局变量

function ff(){

var a = 100;//局部变量

console.log(n)//200

}

console.log(a) //报错!!!

函数的封装

简单来说就是把重复的代码封装到一个函数当中,在使用的时候,直接调用即可

我们做一个判断水仙花数的例子,输出所有的水仙花数。

//判断一个数是不是水仙花数
function fn(n) {if(n<100||n>999) return falselet s = String(n)let sum = 0for (let i = 0; i < s.length; i++) {sum += Math.pow(s.charAt(i), 3)}if (sum == n) {return true}return false
}//输出水仙花数
for(let i=100;i<1000;i++)if(fn(i)) console.log(i);

对象的使用

声明方式1:let obj = {属性名:属性值,...}

声明方式2:let obj = new Object({属性名:属性值,....})

delete 对象名.属性名:删除属性

对象名.新属性名=值-------->会自动添加一个属性名:值

for...in循环

// k---->属性  通过obj.k(或者obj[k])能够拿到所有的属性值

//建议还是使用obj[k],要想拿键值对使用这种形式+for……in会更好

for(var k in obj){

}

数组

创建:let arr = [1,2,3,true,{},funcation f(){}]--->数组中的元素可是不一样   

或者   let  arr = new Array(数字)---->此时是数字代表的含义,是数组的初始长度,当长度超出的时候,长度会增加

当然,还会有二维数组,三维数组等等等等,这些我就不在这里展开。

数组的方法

push(值) :往末尾追加一个元素

pop():往末尾弹出(删除)一个元素

unshift(值):在第一项前面插入一个元素

shift():在第一项弹出(删除)一个元素

let arr = [1,2,3,4,5,6]arr.push(7)
console.log(arr);//[1,2,3,4,5,6,7]---->新增了末尾7arr.pop()
console.log(arr);//删除了末尾7arr.unshift(0)
console.log(arr);//在开头新增了0arr.shift()
console.log(arr);//删除了开头第一个元素

slice(开始索引,结束索引):截取数组(包头不包尾)

                                ---------》如果slice只有一个值,那就是从此处截取到最后

splice(开始索引,删除个数,替换删除的位置(可选)):结果会影响原数组,内容也会发生改变,返回值是删除的内容

let a = [true,1,2,3,"str"]
let b = a.slice(1,3)//能够拿到[1,2] 包头不包尾,但并没有修改原数组的内容
console.log(b);  //----->打印截取到的b数组//删除指定位置,第一个参数是删除下标,第二个则是删除个数,从当前开始往后数。
//修改了原来的数组 返回值是删除的元素
let c = a.splice(1,2)
console.log(c);//[1,2]
console.log(a);//[true,3,"str"]

concat():合并多个数组为一个

join():把数组中的每一项以字符串的方式进行分割,默认是逗号分隔符

sort():内置的排序方法,直接使用是从小到大,十以内,若想排序十以外,就需要传入一个参数,传参是一个function。【sort(function(a,b){return a-b})------->从小到大】【反之b-a从大到小】

reverse():反转数组中的内容

forEach():遍历数组中的元素

var a = [1,2,3,4,5]

a.forEach(o = > console.log(o))

map():返回结果是满足条件的布尔值

filter():返回满足条件的具体结果。

find():返回满足条件的第一个值

数组去重

经典简单方式:

let a = [1,2,3,4,5,1,2,3,4,5]

let b = a.filter((obj,index,arr) => arr.indexOf(obj) === index)

console.log(b);

//当使用过滤器的时候,将当前下标与查找的第一次出现下标进行比较,可以实现去重

要是难以理解没有关系

这里也有可以理解的办法

let a = [1,2,3,4,5,1,2,3,4,5]
let b = []
a.forEach(o=>{if(!b.includes(o)) b.push(o)})
console.log(b);

定义一个数组,将元素加入新的数组当中,要是新数组中没有就添加,否则就不添加。

排序方式

冒泡排序

思想:每一次循环找出一个最大值推到最末端,也就是每次循环找一个最大值。

for (let i = 0; i < a.length; i++) {for (let j = 0; j < a.length - i - 1; j++) {if (a[j] > a[j + 1]) {let temp = a[j];a[j] = a[j + 1];a[j + 1] = temp}}
}
选择排序

思想:每次循环找出一个最小下标,并于第一个进行交换,重复循环寻找即可

//选择排序
for (let i = 0; i < a.length; i++) {let minIndex = i; for (let j = i + 1; j < a.length; j++) {if (a[minIndex]>a[j]) {minIndex = j;}}let temp = a[i];a[i] = a[minIndex];a[minIndex] = temp}
插入排序

思想:因为我们不知道一开始哪一部分是有序的,所以假定第一个元素是有序的,接着从下一个元素开始,每次抽取出一个元素,然后根据大小往有序的数组中插入,就像是扑克牌排顺序一样。

//插入排序
for(let i=1;i<a.length;i++){//插入排序从第一个开始if(a[i]<a[i-1]){let value = a[i];let j;for(j = i-1;j>=0&&a[j]>value;j--){a[j+1] = a[j]}a[j+1] = value}
}

http://www.dtcms.com/a/512431.html

相关文章:

  • k8s部署容器化应用-nginx
  • Linux 根分区爆满排查与解决
  • 南阳东莞网站建设公司天津中冀建设集团有限公司网站
  • linux下虚拟机下安装一个本地yum源
  • SSH密钥认证:从密码到密钥的安全升级指南
  • 企业网站建设平台求职简历模板免费
  • 设计素材网站月收益php+mysql网站开发...
  • 网站建设实现后台数据导出excel公司网站数据库表设计
  • Docker Compose、私有镜像站和Swam集群
  • 【STL——stack容器】
  • DeepSeek-OCR:上下文光学压缩
  • QML 模块解析:从核心模块分类介绍到实际应用的组件与功能说明(之二)
  • 凡科建设网站我对网站开发的反思
  • 东莞专业的网站设计价格领先的手机网站设计
  • SQLite数据库查询
  • Python列表(List)完全指南:从入门到实战优化
  • DeepSeek刚刚开源了一个3B的 OCR模型:什么是DeepSeek-OCR?单张A100-40G每天可以处理20万+页文档
  • html5企业网站赏析石家庄专门做网站
  • 颍上县住房和城乡建设局网站深圳网络工程公司
  • ESP32学习笔记(基于IDF):ESP32连接MQTT服务器
  • 网站建设敬请期待图片素材wordpress 获取菜单id
  • 做网站用什么源码最好wordpress建站优势
  • 网站图标 代码微信开发网站建设程序
  • 修改 Docker 容器中 MySQL 8.0 默认编码为 utf8mb4_unicode_ci
  • C# Dictionary 线程安全指南:多线程下操作 Dictionary<string, DateTime> 的加锁策略
  • 企业im聊天软件支持什么功能,应该怎么选?
  • 【Linux系统编程】权限的概念
  • githup网站建设网站营销站点有你想
  • 差分|递归
  • 如何通过纺织服装MES系统提升生产效率和管理水平?