JavaScript ---day03

1.数组

1.1 数组定义

数组:

(Array)是一种可以按顺序保存数据的数据类型

使用场景:

如果有多个数据可以用数组保存起来,然后放到一个变量中,管理非常方便

1.2数组的基本使用

1.2.1数组声明

声明语法:

let 数组名 = [数据1,数据2,...,数据n]

注:

数组是按顺序保存,所以每个数据都有自己的编号

计算机中的编号从0开始,即数据1的下标为0

在数组中,数据的编号也叫索引或下标

数组可以存储任意类型的数据

1.2.2 数组取值

取值语法:

数组名[下标]

注:

数组取值通过下标取数据

取出来是什么类型的,就根据这种类型特点来访问

1.2.3 一些术语

元素:数组中保存的每个数据都叫元素

下标:数组中数据的编号

长度:数组中元素的个数 数组名.length

1.2.4 遍历数组

一般用for循环遍历数组

let arr1 = [1,3,'ImmortalsK',true]
let i
for(i = 0;i<arr1.length;i++){
    console.log(arr1[i])
}

1.3 操作数组

1.3.1 新增数据

数组.push() 方法将一个或多个元素添加到数组的末尾,并返回该数组的长度

//数组.push一个或多个添加到末尾,并返回数组长度 *********
let number = arr1.push('1',6,9);
console.log(number)
for (i = 0 ;i<arr1.length;i++){
    console.log(arr1[i])
}

数组.unshift 将一个或多个元素添加到数组的开头,并返回数组的新长度

//新增开头,返回数组长度
let number1 = arr1.unshift('red',1,6,'天霸动霸tua');
console.log(number1)
for (i = 0 ;i<arr1.length;i++){
    console.log(arr1[i])
}

1.3.2删除数据

数组.pop() 方法从数组中删除最后一个元素,并返回该元素的值

//删除 pop 删除最后一个并返回删除的值
console.log(arr1.pop());
console.log(arr1)

数组.shift() 方法从数组中删除第一个元素,并返回该元素的值

console.log(arr1.shift());
console.log(arr1)

数组.splice() 方法删除指定元素 参数: 起始位置(从0计数),要移除的个数默认到最后

// splice  删除指定元素  起止位置(索引号) + 删几个   *********** 
arr1.splice(0,2)
console.log(arr1)

1.3.3数组排序

数组.sort()

//数组排序 .sort 默认升序
let arr = [1,5,6,8,9,2,3,4,10,7]
arr.sort()

下面需要具体了解函数

sort 升序:

//升序
arr.sort(function (a, b) {
    return a - b
})
console.log(arr)

sort 降序:

//降序
arr.sort(function (a, b){
    return b - a
})
console.log(arr)

2.函数

2.1 函数

函数:function 是被设计为执行特定任务的代码块

作用:

可以实现代码复用,提高开发效率

细节:

  • 两个相同的函数后面的会覆盖前面的函数
  • 在Javascript中 实参的个数和形参的个数可以不一致

如果形参过多 会自动填上undefined

如果实参过多 那么多余的实参会被忽略 (函数内部有一个arguments,里面装着所有的实参

  • 函数一旦碰到return就不会在往下执行了 函数的结束用return

2.2 函数的使用

声明:

function 函数名(){

函数体
}

命名规范:

和变量名基本一致

尽量使用小驼峰式命名法

前缀应该为动词

命名建议:常用动词约定

例:

求和 getSum

|------|-------------|
| 动词 | 含义 |
| can | 判断是否可执行某个动作 |
| has | 判断是否含有某个值 |
| is | 判断是否为某个值 |
| get | 获取某个值 |
| set | 设置某个值 |
| load | 加载 |

调用方法:

函数名() 注:函数只要在被调用时才会被执行

2.3 函数的传参

调用函数处是实参,函数声明时是形参

函数传参声明

  function calculate(start = 0,end = 0){//形参,多个数据用逗号隔开 可以给默认值 不给默认为undefined

  }

函数传参调用语法

// 实参需要声明变量
//调用函数时,需要传入几个数据就写几个,用逗号隔开
  calculate(start,end) //实参

注:

开发中尽量保持形参和实参个数一致

函数传递参数可以极大的提高了函数的灵活性

2.4 函数的返回值

返回值 定义:当调用某个函数,这个函数会返回一个结果出来,这个结果就是返回值,这就是有返回值的函数

注:

函数的返回值需要根据需求来确定

用retuen返回,returen下面的代码不再执行

return函数可以没有 return,这种情况函数默认返回值为 undefined

2.5 匿名函数

函数分为 具名函数和匿名函数

具名函数 有函数名,调用时是函数名+(参数)

匿名函数,没有名字的函数,无法直接使用 在web API的事件委托中经常用

匿名函数使用方式: 函数表达式,立即执行函数

函数表达式 :将匿名函数赋值给一个变量,并且通过变量名称进行调用 我们将这个称为函数表达式,调用时就是变量名+()

let f2 = function () {
    console.log('1433223')
}
f2()

立即执行函数:

避免全局变量之间的污染

无需调用,立即执行,其实本质已经调用了

多个立即执行函数要用:隔开,不然会报错

方法1:()() 在第一个小括号里面写匿名函数 (function () {

})()

方法2 先() 在括号里面写函数 (function () {

}),并在加个小括号来调用(function () {} ())

//立即执行函数   立即执行函数的函数名也可以起名字
    (function (x,y) {
        console.log(x + y)
    })(3,5);
//立即执行函数第二种写法
(function (x,y) {
    console.log(x + y)
}(7,8));
//两个立即执行函数之前要加;

2.6 作用域

根据作用域不同 JS中分为全局变量 ,局部变量

全局变量:函数外部声明 的变量,在任何区域内都可以访问和修改

局部变量:函数内部声明的变量,只能在当前函数内部访问和修改

注:

在不同作用域下,发生变量命名冲突的情况时,根据就近原则来执行

变量访问的原则: 在能够访问到的情况下 先局部, 局部没有在找全局

3.对象

3.1 对象含义

对象 object :JavaScript里的一种数据类型

定义: 无序的数据集合,用来描述某个事物 其具有属性和方法

注:数组是有序的数据集合,对象和数据不一样

3.2 对象使用

对象的声明:

let 对象名 = {}  或者 let 对象名 = new Object()

例如:

let obj = {
    name: '温小仙',
    age:'20',
    phone:'1233211234567'
}

对象具有属性和方法

3.2.1 属性和方法

数据描述性的信息称为属性,如人的姓名、身高、年龄、性别等,一般是名词性的。

如上面对象声明的name,age,phone

注:

属性都是成 对出现的,包括属性名和值,它们之间使用英文 : 分隔

多个属性之间使用英文 , 分隔

属性就是依附在对象上的变量(外面是变量,对象内是属性)

属性名可以使用 "" 或 '',一般情况下省略,除非名称遇到特殊符号如空格、中横线等

let goods = {
    'goods-name': '小米',
    num: '100012816024',
    weight: '18kg',
    address: '中国大陆'
}

查询'goods-name'这个时

//如果属性名带字符串  forin遍历时就会用上
console.log(goods['goods-name'])

//forin 循环遍历对象时
// k就是属性名,是字符串形式
for (let k in goods) {
    console.log(k)
    console.log(goods[k])
}

方法:数据行为性的信息称为方法,如跑步、唱歌等,一般是动词性的,其本质是函数

//对象里面带方法
let singer = {
    name: '刘德华',
    //方法
    song: function (x,y){
        console.log(this.name + `唱${x}和${y}歌`)
    }
}
singer.song('冰雨','爱你一万年')

注:

方法是由方法名和函数两部分构成,它们之间使用 : 分隔

多个属性之间使用英文 , 分隔

方法是依附在对象中的函数

方法名可以使用 "" 或 '',一般情况下省略,除非名称遇到特殊符号如空格、中横线等

可以添加形参和实参

3.2.2增删改查

查: 语法:对象名.属性

let goods = {
    'goods-name': '小米',
    num: '100012816024',
    weight: '18kg',
    address: '中国大陆'
}
//查
console.log(goods.address)

改: 对象名.属性 = 新值

let goods = {
    'goods-name': '小米',
    num: '100012816024',
    weight: '18kg',
    address: '中国大陆'
}
//改
goods.name = '红米'

增:对象名.新属性 = 新值

let goods = {
    'goods-name': '小米',
    num: '100012816024',
    weight: '18kg',
    address: '中国大陆'
}
//增
goods.price = '1888元'

注: 增和改 区别 如果对象里面有该属性那么就是改,没有就是增

删: delete 对象名.属性

let goods = {
    'goods-name': '小米',
    num: '100012816024',
    weight: '18kg',
    address: '中国大陆'
}
//删
delete goods.weight

3.3 遍历对象

方法: forin

let goods = {
    'goods-name': '小米',
    num: '100012816024',
    weight: '18kg',
    address: '中国大陆'
}
for (let k in goods) {
    console.log(k)
    console.log(goods[k])
}

注:

一般不用这种方式遍历数组、主要是用来遍历对象

for in语法中的 k 是一个变量, 在循环的过程中依次代表对象的属性名 k是字符串

由于 k 是变量, 所以必须使用 [ ] 语法解析

k 是获得对象的属性名, 对象名[k] 是获得 属性值

3.4 内置对象

是什么 :JavaScript内部提供的对象,包含各种属性和方法给开发者调用。例如document.write() , console.log()。

3.4.1 内置对象-Math

Math对象是JavaScript提供的一个"数学"对象,提供了一系列做数学运算的方法

Math对象包含的方法有:

random:生成0-1之间的随机数(包含0不包括1)

ceil:向上取整

floor:向下取整 类似 parseInt

round: 四舍五入到距离最近的整数

max:找最大数

min:找最小数

pow:幂运算

abs:绝对值

向上取整 ceil

console.log(Math.ceil(1.1))//2

向下取整 floor

console.log(Math.floor(1.9))//1

四舍五入到距离最近的整数 round

console.log(Math.round(1.49))//1
console.log(Math.round(1.5))//2
console.log(Math.round(-1.5))//-1
console.log(Math.round(-1.51))//-2

找最大数 max

console.log(Math.max(1,3,8,6,8,9,10))//10

找最小数 min

console.log(Math.min(1,3,8,6,8,9,10))//1

幂运算 pow

// 前底后指
console.log(Math.pow(2,3))//8

绝对值abs

console.log(Math.abs(-10))//10

生成0-1之间的随机数 random

生成0-1之间的数 左闭右开
console.log(Math.random())
//如果要0-10之间的随机整数
console.log(Math.floor(Math.random()*(10+1)))
//5-10之间的随机整数
console.log(Math.floor(Math.random()*(5+1))+5)
/*//N到M之间的随机整数
console.log(Math.floor(Math.random()*(M - N +1)) + N)*/
// 根据传入的参数 生成N~M之间的随机数 左闭右开
function getRandom(N,M) {
    return Math.floor(Math.random()*(M - N +1)) + N
}
console.log(getRandom(4,9))

4. 术语解释

术语 解释 举例
关键字 在JavaScript中有特殊意义的词汇 let、var、function、if、else、 switch、case、break
保留字 在目前的JavaScript中没意义,但未 来可能会具有特殊意义的词汇 int、short、long、char
标识(标识符) 变量名、函数名的另一种叫法
表达式 能产生值的代码,一般配合运算符出 现 10 + 3、age >= 18
语句 一段可执行的代码 If () for()
相关推荐
在线打码23 分钟前
网络攻击行为可视化分析系统【数据分析 + 可视化】
javascript·数据挖掘·数据分析·flask·数据可视化
阿杰学编程2 小时前
1、什么是GO
服务器·开发语言·golang
有梦想的咸鱼_2 小时前
Golang 设计模式
开发语言·设计模式·golang
一决威严-雪雪2 小时前
springboot整合gateway
java·开发语言
bboysky452 小时前
golang 的 panic
开发语言·后端·golang
小诸葛的博客2 小时前
Go oom分析(一)——使用pprof线上分析
开发语言·后端·golang
肖老师xy2 小时前
uniapp使用chooseLocation安卓篇
android·javascript·uni-app
丁卯4042 小时前
golang单元测试
开发语言·golang·单元测试
SyntaxSage2 小时前
Lua语言的软件开发工具
开发语言·后端·golang
凉秋girl2 小时前
Java基础概念
java·开发语言