IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> 数据结构与算法 -> Js基本语法与小结 -> 正文阅读

[数据结构与算法]Js基本语法与小结

3.1、 字符串

在JavaScript中既可以用单引号表示字符串也可以用单引号,没用字符型,字符型就是长度为一的字符串,且字符串与String一样不可变性,(Java中StringBuffer与StringBuilder时可变的),但是在JavaScrpit可以用像数组一样从字符串中取值。

let a = [1,2,3,4,5,6];
a[1] = 2;
a.length() = 6;
a.indexof(2);//返回下标1
a.subString(1);//从下标为1的地方开始返回字符串
a.subString(1,3);//左闭右开,返回2,3子串

==这个符号不区分数据类型,只要数值一样就为true

console.log('1' == 1);//true

局部变量建议都使用let去定义,var相当于定义全局变量。

'use strict'; 严格检查模式,预防JavaScript的随意性导致产生的一些问题。且必须写在Script的第一行。

3.2、 数组

Array可以包含任意的数据结构,柔性数组

var arr = [1,2,3,4,5,6];//通过下标取值和赋值
arr[0];
arr[0] = 1;

var arr = [1,2,3,4,5,6]

1.长度

arr.length

注意:加入给arr.length赋值,数组大小就会发生变化,如果赋值过小,元素就会丢失

2.indexOf(),通过元素获得下标。

arr.lengthOf(2);
1

3.slice() 截取Array的一部分,返回一个新数组,类似于String中的subString

4.push(),pop() 尾部

震惊,这个玩意竟然和用栈一摸一样,后进先出

push():压入到尾部

pop():弹出尾部的一个元素

let arr = [1,2,3,4,5,6,"1","2"];
arr.push("a","b");
arr
arr = [1,2,3,4,5,6,"1","2","a","b"];
arr.pop('b');
arr.pop('a');
arr
arr = [1,2,3,4,5,6,"1","2"];

5.unshift(),shift()头部

震惊,这个东西和队列的用途一摸一样

unshift(): 将元素压入到头部

shift():弹出头部的一个元素

let arr = [1,2,3,4,5,6,"1"];
arr.unshift('a','b');
arr
arr = ['a','b',1,2,3,4,5,6,"1"];
arr.shift('a');
arr = ['b',1,2,3,4,5,6,"1"];

6.排序sort()

7.与Java一样元素反转reverse()

8.concat() 拼接一个数组,并返回新的数组,并不会改变原来的数组

里面输入一个数组,返回的数组会在原数组的基础上尾部增加参数数组的元素

let arr = ["C","B","A"];
let b = arr.concat([1,2,3]);
b = ["C","B","A",1,2,3];

9.连接符join

打印拼接数组,使用特定的字符串连接

arr["C","B","A"];

arr.join('-');

"C-B-A"

10.多维数组

与Java一样

arr[[1,2],[2,3],[5,6]];

3.3、对象

若干个键值对

var 对象名 = {
    属性名: 属性值,
    属性名: 属性值,
    属性名: 属性值,
    属性名: 属性值
}
//定义了一个person对象,它有四个属性!
var person = {
    name: "kuangshen",
    age:3,
    email:"24736743@qq.com",
    score: 0
}

Js中对象,键值对描述属性,XX: xx,多个属性之间使用逗号,最后一个属性不加逗号!

JavaScript中的所有的键都是字符串,值是任意对象!

1.对象赋值

跟java一样 person.name = "哈哈"

2.使用一个不存在的对象属性,不会报错!会报undefined未定义

例如:person.haha

undifined

3.动态的删减属性,通过delete删除对象的属性

delete person.name;
true

4.动态的添加,直接给新的属性添加值即可

person.haha = "haha";
在person对象中自动新添属性haha

5.判断属性值是否在这个对象中! xx in xx 除了写的那些属性,还继承了许多属性,在prototype里面

'age' in person;
true
//继承
'toString' in person
true

6.判断一个属性是否是这个对象自身拥有的 hasOwnProperty()

person.hasOwnProperty('age');
false

3.4、流程控制

只说与Java不一样的地方

forEach循环

var age = [12,2,13,3,12,3,12,31,23,123];

//里面是一个函数
age.forEach(function(){
    console.log(value);
})

for...in

遍历下标

//for(var index in objext){}
for(var num in age){
        console.log(age[num]);
}

for...of

遍历元素

1.循环字符串

let string = "abc";
for(let i of string){
    console(i);//a,b,c
}

?2.循环数组

JavaScript 数组的 keys() 方法返回一个新的数组迭代器对象,该对象包含数组中每个索引的键。?

?

values()方法返回一个新的?Array Iterator?对象,该对象包含数组每个索引的值。?

与直接arr一样,都是输出数组元素的值

for(let i of arr){
    console.log(i);//一样
}

?

?从数组 arr中创建一个可迭代对象, 该对象包含了数组的键值对:

键是数组下标,值就是数组中元素的值。

3、循环普通对象

?

?

4、循环Map接口

?

5、循环set结构?

?

1、除了字符串,map,set 结构可以直接利用循环出来!

2、对于数组或者对象都需要进行entries() 来进行循环,注意的是对象的entries是静态方法,而对于数组来说是实例方法。

3、为什么循环的时候都是[keys ,values ] 呢?? 我们可以用结构赋值来理解,因为map 结构,它本身定义的时候就是 new Map ([[keys,values],[keys,values]])? ,它本身就是[keys ,values ] 的结构,当然可以这样直接循环出来喽!

?3.5 Map和Set

Map:

var map = new Map([['tom',100],['jack',90],['haha',80]]);
var name = map.get('tom');
console.log(name);//100

?Set:无序不重复的集合

var set =  new Set([3,1,1,1,1]);//set可以去重
set.add();//添加
set.delete();//删除
console.log(set.has());//里面是否包含某个元素!

?

?

?

?

?

?

?



?

  数据结构与算法 最新文章
【力扣106】 从中序与后续遍历序列构造二叉
leetcode 322 零钱兑换
哈希的应用:海量数据处理
动态规划|最短Hamilton路径
华为机试_HJ41 称砝码【中等】【menset】【
【C与数据结构】——寒假提高每日练习Day1
基础算法——堆排序
2023王道数据结构线性表--单链表课后习题部
LeetCode 之 反转链表的一部分
【题解】lintcode必刷50题<有效的括号序列
上一篇文章      下一篇文章      查看所有文章
加:2021-12-15 18:33:00  更:2021-12-15 18:35:20 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年10日历 -2024/10/31 10:19:10-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码