这是我参与更文挑战的第30天,活动详情查看: 更文挑战
微信公众号搜索【程序媛小庄】,领取全套python全栈教程,还有小庄整理的不断更新的电子书、面试资料等你来拿哦~
前言
js中难道没有像Python中的列表一样的数据类型吗?也没有字典吗?答案当然是有滴,请看小庄慢慢道来。
对象
JavaScript是一门面向对象的语言,一切皆对象同样适用于JavaScript,同时JavaScript也允许自定义对象。
数组对象
JavaScript中的数组类似于python中的列表,同样使用[]
表示。
数组基本方法
var a = [11,'a',true];
typrof a; // "object"
// 支持索引取值,但是不支持负数索引
a[1]; // "a"
// 数组的长度:.length
a.length; // 3
// 数组中追加值
a.push('chloe');
a; // (4) [11, "a", true, "chloe"]
// 数组删除值:pop(),n不写,默认删除最后一个元素,会返回删除的元素值;
a.pop();
// unshift():头部插入元素,返回当前数组的元素个数
a.unshift('false'); // 4
a // (4) ["false", 11, "a", true]
// shift():头部移除元素,返回被移除的元素值
a.shift(); // "false"
// .slice(start,end):切片,识别负数
a.slice(0,2); // (2) [11, "a"]
// reverse():反转
a.reverse(); // (3) [true, "a", 11]
// .join():使用指定字符串拼接,内部会将数字转为字符串
var a = [true, "a", 11];
a.join(2); // "true2a211"
// concat():相当于python中列表的extend方法,返回扩展后的元组
a.concat([1,2,3]); // (6) [true, "a", 11, 1, 2, 3]
// sort():排序
var a = [2,2,4,3];
a.sort(); // (4)[2,2,3,4]
重要方法 - forEach方法
// forEach(function(value,index,arr){console.log(value,index,arr)})
var a = [1,2,'a','c'];
// 只有一个value参数,显示数组中的元素值
a.forEach(function(value){console.log(value)});
/*
VM1274:2 1
VM1274:2 2
VM1274:2 a
VM1274:2 c
*/
// 两个参数value index,显示数组中的元素值及元素索引
a.forEach(function(value,index){console.log(value,index)});
VM1326:1 1 0
VM1326:1 2 1
VM1326:1 a 2
VM1326:1 c 3
// 三个参数value index arr,显示数组中的元素值及下标及元素来源
a.forEach(function(value,index,arr){console.log(value,index,arr)});
VM1340:1 1 0 (4) [1, 2, "a", "c"]
VM1340:1 2 1 (4) [1, 2, "a", "c"]
VM1340:1 a 2 (4) [1, 2, "a", "c"]
VM1340:1 c 3 (4) [1, 2, "a", "c"]
// 四个参数,value index arr xx,显示数组中的元素值及下标及该数组及undefined
a.forEach(function(value,index,arr,xx){console.log(value,index,arr,xx)});
VM1372:1 1 0 (4) [1, 2, "a", "c"] undefined
VM1372:1 2 1 (4) [1, 2, "a", "c"] undefined
VM1372:1 a 2 (4) [1, 2, "a", "c"] undefined
VM1372:1 c 3 (4) [1, 2, "a", "c"] undefined
重要方法 - splice
// splice(start,num,data):三个参数,第一个是起始位置,第二个是删除个数,第三个删除后添加的数据
var a = [1,2,'a','c'];
// 两个参数的情况,第一个是起始位置,第二个是删除个数,返回删除的元素
a.splice(1,1); // [2]
a; // (3) [1, "a", "c"]
// 三个参数,先删除后添加
// 删除后添加元素
a.splice(1,1,4); // [2]
a; // [1,4,'a','c']
// 删除后添加数组
a.splice(1,1,[4,5]); // [2]
a; // (4) [1, Array(2), "a", "c"]
重要方法 - map
// map(function(value,index,arr){return value }):对数组的元素值处理后,可以重新赋值给另一个变量,原数组不变
var a = [1,2,'a','c'];
res = a.map(function(value){return value+1}); // (4) [2, 3, "a1", "c1"]
a; // (4) [1, 2, "a", "c"]
自定义对象
JavaScript中的自定义对象就可以看成是Python中的字典,但是JavaScript中的自定义对象要比Python中的字典操作起来方便。
创建自定义对象方式一 - {}
// 创建自定义对象
var d = {'name':'chloe','age':18};
// 查看对象的类型
typeof d; // "object"
// 取值
d['name']; // "chloe"
d['age']; // 18
d.name; // "chloe"
d.age; // 18
// 支持for循环取值,默认取到的值也是key
for (let i in d)
{
console.log(i,d[i]);
};
/*
name chloe
age 18
*/
创建自定义对象方式二 - new
var d = new Object(); // {}
// 为对象中添加键值对的方式一
d['name'] = 'chloe';
// 添加键值对的方式二
d.age = 18;
d; // {name: "chloe", age: 18}
Date对象
let d = new Date();
d; //
Sat May 16 2020 08:38:28 GMT+0800 (中国标准时间)
// 将上述时间转换为较为方便观看的格式
d.toLocaleString(); // "2020/5/16 上午8:38:28"
// 支持手动输入时间
let d = new Date('2200/11/11 11:11:11');
d; // Tue Nov 11 2200 11:11:11 GMT+0800 (中国标准时间)
d.toLocaleString(); // "2200/11/11 上午11:11:11"
// 注意:月份是从0开始到11月
// 时间对象具体方法
let d6 = new Date();
d6.getDate() 获取日
d6.getDay() 获取星期
d6.getMonth() 获取月份(0-11)
d6.getFullYear() 获取完整的年份
d6.getHours() 获取小时
d6.getMinutes() 获取分钟
d6.getSeconds() 获取秒
d6.getMilliseconds() 获取毫秒
d6.getTime() 时间戳
划重点 - json对象
json是任何语言中都很重要的部分哦,用来实现不同语言之间的交互。
// 序列化,stringify()---相当于python中的dumps
let j = {'name':'chloe','age':18};
let res = JSON.stringify(j);
res; // "{"name":"chloe","age":18}"
// 反序列化,parse() ----相当于python中的load
JSON.parse(res); // {name: "chloe", age: 18}
Math对象
abs(x) 返回数的绝对值。
exp(x) 返回 e 的指数。
floor(x) 对数进行下舍入。
log(x) 返回数的自然对数(底为e)。
max(x,y) 返回 x 和 y 中的最高值。
min(x,y) 返回 x 和 y 中的最低值。
pow(x,y) 返回 x 的 y 次幂。
random() 返回 0 ~ 1 之间的随机数。
round(x) 把数四舍五入为最接近的整数。
sin(x) 返回数的正弦。
sqrt(x) 返回数的平方根。
tan(x) 返回角的正切。
运算符
算术运算符
JavaScript支持普通的+-×/
运算。
++ :表示自增1,类似于 +=1
-- :与++用法一致
var x = 10;
// 先将x的值赋值给y,x在自增
var y = x++;
x; // 11
y; // 10
var x = 10;
// x先自增,然后自增后的x赋值给y
var y = ++x;
x; // 11
y; // 11
比较运算符
// == 弱等于,内部自动转换成相同的数据类型进行比较
1 == '1'; // true
// === 强等于,内部不做类型转换
1 === '1'; // false
// 案例
1 != '1'; // false
1 !== '1'; // true
逻辑运算符
短路运算的前提下:进行布尔值的且和或的运算。当运算到某一个值就得出最终结果之后,就返回哪个值。
and关系:&&
or关系:||
not关系:!
5 && '5';
'5'
0 || 1;
1
!5 && '5';
false
结语
码字不易,转载请说明出处,走过路过的小伙伴们伸出可爱的小指头点个赞再走吧(╹▽╹)