创建(object类型):
var arr = ['a','b','c'];
var arr2 = newArray();
typeof arr\arr2 -->object
索引操作:
arr[0] 查看
arr2[0] = 'alex' 赋值操作
Array常用的属性和方法
属性:length(数组长度)
方法:
.push(ele) 尾部追加元素
.pop() 删除尾部的元素
示例:
var a = [11, 22, 33, 44];
var b = a.pop();
结果:
a -- [11, 22, 33]
b -- 44
.unshift(ele) 头部插入元素
示例:
var a = [11, 22, 33];
a.unshift('aa')
a -- ["aa", 11, 22, 33]
.shift() 头部移除元素
示例:
var a = ["aa", 11, 22, 33];
a.shift() -- 'aa'
a -- [11, 22, 33];
.slice(start, end) 切片
示例:
var b = a.slice(0,3);
b -- [11, 22]
.reverse() //在原数组上改的 反转
示例:
var a = [11,22,33];
a.reverse()
a -- [33,22,11]
.join(seq) //a1.join('+'),seq是连接符 将数组元素连接成字符串
示例:
var a = ['aa','bb','cc'];
var b = a.join('_');
b -- "aa_bb_cc";
.concat(val, ...) //连个数组合并,得到一个新数组,原数组不变 连接数组
示例:
var a = ["aa", "bb", "cc"];
var b = [11,22];
var c = a.concat(b);
c -- ["aa", "bb", "cc", 11, 22];
.sort() //排序
示例:
var a = [12,3,25,43];
对a进行升序排列:
1 定义函数
functionsortNumber(a,b){
return a - b
};
2var b = a.sort(sortNumber)
b -- [3, 12, 25, 43]
sort 规则:
如果想按照其他标准进行排序,就需要提供比较函数,也就是自己提供一个函数提供排序规则,该函数要比较两个值,然后返回一个用于说明这两个值的相对顺序的数字。比较函数应该具有两个参数 a 和 b,其返回值如下:
若 a 小于 b,在排序后的数组中 a 应该出现在 b 之前,则返回一个小于 0 的值。
若 a 等于 b,则返回 0。
若 a 大于 b,则返回一个大于 0 的值。
.splice() //参数:1.从哪删(索引), 2.删几个 3.删除位置替换的新元素(可多个元素) 删除元素,并向数组添加新元素。
示例:
var a = ['aa','bb',33,44];
单纯删除:a.splice(1,1)
a -- ["aa", 33, 44]
删除在替换新元素:
var a = ["aa", 33, 44];
a.splice(0,2,'hello','world');
a -- ["hello", "world", 44];
7.2 自定义对象(相当于python字典)
索取值
var a = {'name': 'alex','age' :48};
a['age']; -- 48
a.age; -- 48
键可以不用加引号(会自动处理成字符串)
[]中括号取值必须加引号
8 类型查询
9 数据类型之间的转换
string --> int
parseInt('123') //123parseInt('123abc') //123parseInt('abc123') //NaNparseInt('abc') //NaN not a number
string --> float
parseFloat('1.233')
float/int --> Stringvar num = 123String(123)
var str = num.toString()
任意类型 --> BooleanBoolean(数据)
字符串和数字相加 --> 字符串
字符串和数字相减 --> 数字
10 运算符
10.1 赋值运算符
= += -= *= /= %=
示例:
n += 1其实就是n = n + 1
10.2 比较运算符
> < >= <=
== != 不比较类型
=== !== 比较类型和值(常用)
==(弱等于)
===(强等于)
示例:
var a = 11;
var b = '11';
a == b -- true
a === b; -- false
10.3 算数运算符
+ - * / % **
++ --
var a = 1undefinedvar b = a++ // a=2 b=1(先进行逻辑,再进行自加1)var c = ++a // a=3 c=3(先进行自加1,再进行逻辑)
i++,是i自加1,i--是i自减1 i++的这个加1操作优先级低,先执行逻辑,然后再自加1,而++i,这个加1操作优先级高,先自加1,然后再执行代码后面的逻辑
示例:
var a = 100;
a++;或者++a; -- 101 a自增1
a++和++a的区别,示例:
var a = 102;
a++ == 102; -- true
a -- 103;
++a == 103; -- false
a -- 104;
var err_type = 'info'switch(err_type) {
case'warining':
console.log('警告');
break;
case'error':
console.log('错误');
break;
default:
console.log('没错')
}
示例:
var a = 1;
switch (a++){ //这里day这个参数必须是一个值或者是一个能够得到一个值的算式才行,这个值和后面写的case后面的值逐个比较,满足其中一个就执行case对应的下面的语句,然后break,如果没有加break,还会继续往下判断case1:
console.log('等于1');
break;
case3:
console.log('等于3');
break;
default: case都不成立,执行defaultconsole.log('啥也不是!')
}
11.2 循环语句
11.2.1 while
var i = 1; //初始化循环变量while(i<=9){ //判断循环条件console.log(i);
i = i+1; //更新循环条件
}
示例:
var i = 0;
var a = 10;
while (i < a){
console.log(i);
if (i>5){
continue;
break;
}
i++;
};
11.2.2 for
for (var i=0;i<10;i++) { //就这么个写法,声明一个变量,变量小于10,变量每次循环自增1,for(;;){console.log(i)};这种写法就是个死循环,会一直循环,直到你的浏览器崩了,就不工作了console.log(i);
}
循环数组:
var l2 = ['aa','bb','dd','cc']
方式1for (var i in l2){
console.log(i,l2[i]);
}
方式2for (var i=0;i<l2.length;i++){
console.log(i,l2[i])
}
循环自定义对象:
var d = {aa:'xxx',bb:'ss',name:'小明'};
for (var i in d){
console.log(i,d[i],d.i) //注意循环自定义对象的时候,打印键对应的值,只能是对象[键]来取值,不能使用对象.键来取值。
}
可以循环自定义对象(在for循环内点不可以取值)
11.2.3 三元运算符
var 结果 = boolean表达式 ? 为true返回的值:为false返回的值
var a=10;
var b=11;
var c=a>b ? a:b;
首先在函数内部查找变量,找不到则到外层函数查找,逐步找到最外层。
var city = "BeiJing";
functionf() {
var city = "ShangHai";
functioninner(){
var city = "ShenZhen";
console.log(city);
}
inner();
}
f();
var city = "BeiJing";
functionBar() {
console.log(city);
}
functionf() {
var city = "ShangHai";
returnBar;
}
var ret = f();
ret();
闭包:
var city = "BeiJing";
functionf(){
var city = "ShangHai";
functioninner(){
console.log(city);
}
return inner;
}
var ret = f();
ret();
15 面向对象
functionPerson(name){
this.name = name;
};
var p = newPerson('taibai');
console.log(p.name);
Person.prototype.sum = function(a,b){ //封装方法return a+b;
};
p.sum(1,2);
3
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】凌霞软件回馈社区,博客园 & 1Panel & Halo 联合会员上线
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】博客园社区专享云产品让利特惠,阿里云新客6.5折上折
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 为什么说在企业级应用开发中,后端往往是效率杀手?
· 用 C# 插值字符串处理器写一个 sscanf
· Java 中堆内存和栈内存上的数据分布和特点
· 开发中对象命名的一点思考
· .NET Core内存结构体系(Windows环境)底层原理浅谈
· 为什么说在企业级应用开发中,后端往往是效率杀手?
· DeepSeek 解答了困扰我五年的技术问题。时代确实变了!
· 本地部署DeepSeek后,没有好看的交互界面怎么行!
· 趁着过年的时候手搓了一个低代码框架
· 推荐一个DeepSeek 大模型的免费 API 项目!兼容OpenAI接口!