数据操作

数据操作

一、对象

一个大空间存储多个小的内存空间,一个变量中存储多个数据的数据

定义:

var 对象 = { 属性: 值, 属性: 值, ... }
var 对象 = new Object()

基本操作:

设置对象的键值对:

对象.属性名 = 值
对象['属性名'] = 值

如果属性名原本不存在 - 新增

如果属性名原本存在 - 修改/替换

访问对象的值:

对象.属性名
对象['属性名']

删除对象键值对:

delete 对象.属性名
delete 对象['属性名']

对象的特性:

  1. 对象中的键值对之间是无序的
  2. 对象中的属性是唯一的

对象的遍历:

for(var key in 对象){
    key代表对象中的每个属性
    对象[key]
}

注意:如果使用变量代表对象的键,获取值的时候必须使用对象[键]语法

二、数组

概念:一个大空间存储多个小的内存空间,一个变量中存储多个数据的数据

跟对象的区别:数组中的小空间是有顺序的

定义:

var arr = []
var arr = new Array()

注意:只放入一个数字的时候,[]表示数组中有一个元素,new表示有多个空的小空间。

基本操作:

设置数组中的数据:

数组[下标] = 值

访问:

数组[下标]

删除数据(保留小空间):

delete 数组[下标]

长度:

数组.length // 获取数组中元素个数
数组.length = 数字 // 将数组保留多少个小空间

数组的规律:

  1. 数组的第一个元素下标一定是0
  2. 数组的最后一个元素下标一定是length-1

遍历:

for(var a = 0; a < arr.length; a++) {
    a代表每个元素对应的下标
}

for(var a in arr){
    a代表每个元素对应的下标
}

区别:in语法不遍历空的小空间

三、基本类型和引用类型

基本类型:number/string/boolean/undefined/null

引用类型:object/array/function

区别:

基本类型 引用类型
存储 将值存储在栈中 将值存储在堆中,将堆的地址存储在栈中
赋值 将值复制给另一个变量 将地址复制给另一个变量 - 两个变量共享同一个数据了
比较 比较值和类型 比较的内存地址

注意赋值操作,因为我们有很多隐性赋值过程:

  1. 实参赋值给形参
  2. 用变量接收函数的返回值

四、排序方式

1、冒泡排序

将数组中每相邻的两个元素进行大小比较,排列顺序

for(var i = 0; i < arr.length - 1; i++){
    for(var j = 0; j < arr.length - 1; j++){
        if(arr[j] > arr[j+1]){
            var tmp = arr[j]
            arr[j] = arr[j+1]
            arr[j+1] = tmp
        }
    }
}

2、选择排序

每一轮都找到最大或最小值,排在最前面,在剩下的数字中找到最大或最小值排在第二位,。。。

for(var i = 0; i < arr.length - 1; i++) {
    for(var j = i + 1; j < arr.length; j++) {
        if(arr[j] > arr[i]){
            var tmp = arr[j]
            arr[j] = arr[i]
            arr[i] = tmp
        }
    }
}

五、数组方法

删除开头:shift

删除结尾:pop

开头添加:unshift

结尾添加:push

给数组添加、修改、删除:splice

查找元素在数组中第一次出现的下标:indexOf

查找元素在数组中最后一次出现的下标:lastIndexOf

将数组元素使用连接符连接成一个字符串:join

遍历数组:forEach

过滤:filter

判断数组中是否至少有一个元素是满足条件的:some

求和:reduce

所有元素处理成新元素组成新数组:map

翻转:reverse

找数组中第一个满足条件的元素的下标:findIndex

找数组中第一个满足条件的元素:find

截取:slice

排序:sort

合并:concat

判断数组中是否所有元素都满足指定条件:every

六、字符串

字符串可以取下标 - 字符串[下标]

字符串是只读数据,只能读取字符,不可以修改、删除字符

字符串可以比较大小,规则:逐字符比较

字符的大小由阿斯克码决定

09:4857

az:97122

AZ:6590

七、字符串方法

查找字符或小字符串第一次出现的下标:indexOf

查找字符或小字符串最后一次出现的下标:lastIndexOf

分割成数组:split

获取指定下标对应字符的阿斯克码:charCodeAt

替换字符串:replace

去除空白:trim/trimLeft/trimRight

转大写:toUpperCase

转小写:toLowerCase

根据阿斯克码获取字符:String.fromCharCode

判断字符串中是否包含某个字符或小字符串:includes

截取字符串:slice/substr/subtring

判断字符串是否由某个字符或小字符串开头:startsWith

判断字符串是否由某个字符或小字符串结尾:endsWith

重复某个字符串:repeat

查找字符串中第一个满足指定正则表达式的小字符串的下标:search

提取字符串中满足正则表达式的小字符串:match

八、数学操作

随机数:random - 某个范围内的随机整数

绝对值:abs

向下取整:floor

向上取整:ceil

平方根:sqrt

圆周率:PI

最大值:max

最小值:min

四舍五入:round

正弦:sin

余弦:cos

求次方:pow

九、进制转换

将其他进制转为10进制 - parseInt

将10进制转成其他进制:toString

十、时间日期

创建时间日期对象:

new Date() // 获取当前时间日期对象
new Date(参数) // 指定的时间日期对象

参数:

'年-月-日 时:分:秒'

年,月,日,时,分,秒

时间戳

获取具体的时间日期:

年:getFullYear

月:getMonth 获取到的结果是0~11

日:getDate

时:getHours

分:getMinutes()

秒:getSeconds()

时间戳:getTime

星期:getDay()

设置具体的时间日期:

年:setFullYear

月:setMonth 设置的数字是0~11

日:setDate

时:setHours

分:setMinutes()

秒:setSeconds()

时间戳:setTime

©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 200,527评论 5 470
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 84,314评论 2 377
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 147,535评论 0 332
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 54,006评论 1 272
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 62,961评论 5 360
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 48,220评论 1 277
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 37,664评论 3 392
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 36,351评论 0 254
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 40,481评论 1 294
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 35,397评论 2 317
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 37,443评论 1 329
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 33,123评论 3 315
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 38,713评论 3 303
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 29,801评论 0 19
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 31,010评论 1 255
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 42,494评论 2 346
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 42,075评论 2 341

推荐阅读更多精彩内容