JavaScript基础回顾知识点记录3
js 中 垃圾回收
//将不在使用的对象设置为null , js就会自动进行垃圾回收机制
var obj = {};
obj = null;
js 中 数组基本介绍
- 数组也是一个对象
- 与普通对象功能类似,用来存储值。对象用字符串作为属性名(索引),数组用数字(从0开始)作为索引
- 数组的存储性能比普通对象好
//数组的基本操作
var arr = new Array();
var arrs = []; // 推荐使用这种方式创建数组
arr[0] = 1;
arr[1] = 2;
arrs[0] = 11;
arrs[11] = 22;
console.log(arr); //输出 [1, 2]
console.log(arrs); //输出[11, empty × 10, 22]
console.log(arr.length); //输出2
console.log(arrs.length); //输出12
arr.length = 1;
console.log(arr); //输出[1] 注意:
1、对于连续数组,使用length可以获取数组的长度; 对于非连续数组,使用length会获取到数组的最大索引+1
2、修改数组长度,如果修改值大于原长度,则默认添加元素个数。如果小于原长度,则删减元素个数
js 中 数组常用方法介绍
var arr = ["zhangsan","lisi","wangwu"]; // push() 方法,向数组末尾添加一个或多个元素,并返回添加后的数组长度
var res = arr.push("qianliu","zhaoqi"); // 查看push的返回值
console.log(arr); //输出["zhangsan", "lisi", "wangwu", "qianliu", "zhaoqi"]
console.log(res); //输出5,返回值为数组长度 // pop() 方法,删除数组最后一个元素,并返回被删除元素
var res2 = arr.pop();
console.log(res2); //输出["zhangsan", "lisi", "wangwu", "qianliu"]
console.log(arr); //输出zhaoqi,返回值为被删除元素 // slice() 方法 从数组提取指定元素。该方法不会改变原数组,封装到一个新数组中返回。
// 第一个参数:截取开始位置的索引,包含开始索引。第二个参数:截取结束位置的索引,不包含结束索引。
// 第二个参数可以不写,默认从开始位置全部截取。
// -1 表示倒数第一个,-2表示倒数第二个
var res3 = arr.slice(0,2);
var res4 = arr.slice(0);
var res5 = arr.slice(-1);
var res6 = arr.slice(-2);
var res7 = arr.slice(0,-1);
console.log(res3); //输出["zhangsan", "lisi"]
console.log(res4); //输出["zhangsan", "lisi", "wangwu"]
console.log(res5); //输出["wangwu"]
console.log(res6); //输出["lisi", "wangwu"]
console.log(res7); //输出["zhangsan", "lisi"] // splice() 方法, 删除数组中指定的元素,操作的是元素组,并返回被删除元素
// 第一个参数表示开始位置的索引,第二个参数表示删除的数量
var res8 = arr.splice(1,2);
console.log(arr); //输出["zhangsan"]
console.log(res8) //输出["lisi", "wangwu"] // 其他函数不多加赘述,需用的时候查手册即可js 中 数组遍历
//for循环遍历
for(var i = 0; i<arr.length;i++) {
console.log(arr[i]);
}
//forEach遍历; (这个方法仅支持IE8以上的浏览器使用)
//该方法需要回调函数作为参数 ,该回调函数中传递三个参数:
//第一个参数:当前遍历的元素值。第二个参数:当前遍历的索引值。第三个参数:当前遍历的数组
arr.forEach(function(value,index,obj){
console.log(value);
console.log(index);
console.log(obj);
})
js 中 apply方法和call方法
// 这两个方法都是函数对象的方法。
// 调用这两个方法后,可以将一个对象指定为第一个参数,此时该函数执行时的this将变为这个对象。
// call()方法可以将实参在对象之后依次传递
// apply()方法需要将实参封装成一个数组再传递 function fun(a,b) {
console.log(a);
console.log(b);
console.log(this);
}
var obj = {name:"zhangsan"};
fun(1,2); //this输出window
fun.call(obj,1,2); //this输出{name:"zhangsan"}
fun.apply(obj,[1,2]); //this输出{name:"zhangsan"}
js 中 arguments(实参列表)
// 在调用函数时,浏览器会传递两个隐含参数
// 第一个:函数的上下文对象 this; 第二个:封装实参的对象arguments(类数组对象)
// 传递的所有实参都会被封装到arguments中
// 不定义形参时,仍可以使用arguments来使用实参 function fun(){
console.log(arguments[0]); //输出Arguments(3)["hello", true, "world", callee: ƒ, Symbol(Symbol.iterator): ƒ]
console.log(arguments.length); //输出3,实参数量
} fun('hello',true,'world');
js 中 Date对象 (时间)
// 创建Date对象
var d = new Date(); //当前时间
var d2 = new Date("12/03/2022 12:12:12"); //创建指定时间(日期格式为:月份/日/年/ 时:分:秒)
var date = d2.getDate(); // 获取当前日期是几日
var day = d2.getDay(); // 获取当前日期周几js 中 Math
//绝对值
console.log(Math.abs(-1)); //输出1
//向上取整
console.log(Math.ceil(2.1)); //输出3
//向下取整
console.log(Math.floor(2.1)); //输出2
//四舍五入取整
console.log(Math.round(2.1)); //输出2
//生成随机数 x-y之间的随机数: Math.round(Math.random()*(y-x)+x)
console.log(Math.round(Math.random()*19)+1); //1-20的随机数
//获取多个数中的最大值/最小值
var max = Math.max(10,11,12,13);
var min = Math.min(1,2,3,4);
console.log(max); //输出13
console.log(min); //输出1
JavaScript基础回顾知识点记录3的更多相关文章
- JavaScript基础回顾知识点记录6-操作元素样式和事件对象(介绍基本使用)
js 中 操作元素样式 通过js修改元素内联样式(设置和读取的都是内联样式) 获取当前元素显示的样式 <html> <head> <meta charset=" ...
- JavaScript基础回顾知识点记录4-正则表达式篇(介绍基本使用)
js 中 正则表达式使用 创建正则对象和test方法使用 /* 创建正则表达式的对象 语法: var 变量 = new RegExp("正则表达式","匹配模式" ...
- JavaScript基础回顾知识点记录2
js 使用嵌套for循环输出三角形 for(var i=0; i<5; i++){ //正三角 // for(var j=0; j<i+1; j++){ // document.write ...
- JavaScript基础回顾知识点记录1
js执行顺序为从上往下执行 js中有6种数据类型 基本数据类型为: String Number Boolean Null Undefined 引用数据类型为: Object 使用typeof 查看对象 ...
- Javascript基础回顾 之(三) 面向对象
本来是要继续由浅入深表达式系列最后一篇的,但是最近团队突然就忙起来了,从来没有过的忙!不过喜欢表达式的朋友请放心,已经在写了:) 在工作当中发现大家对Javascript的一些基本原理普遍存在这里或者 ...
- Javascript基础回顾 之(二) 作用域
本来是要继续由浅入深表达式系列最后一篇的,但是最近团队突然就忙起来了,从来没有过的忙!不过喜欢表达式的朋友请放心,已经在写了:) 在工作当中发现大家对Javascript的一些基本原理普遍存在这里或者 ...
- Javascript基础回顾 之(一) 类型
本来是要继续由浅入深表达式系列最后一篇的,但是最近团队突然就忙起来了,从来没有过的忙!不过喜欢表达式的朋友请放心,已经在写了:) 在工作当中发现大家对Javascript的一些基本原理普遍存在这里或者 ...
- JavaScript 基础回顾——对象
JavaScript是基于对象的解释性语言,全部数据都是对象.在 JavaScript 中并没有 class 的概念,但是可以通过对象和类的模拟来实现面向对象编程. 1.对象 在JavaScript中 ...
- JavaScript基础回顾一(类型、值和变量)
请看代码并思考输出结果 var scope = 'global'; function f(){ console.log(scope); var scope = 'local'; console.log ...
随机推荐
- VS Code官方插件集与工具
如果您也使用VS Code作为CabloyJS项目开发的主编辑器,那么可以参考官方使用的插件集,此外也提供了一些周边工具 这是官方亲测可用的最简插件集,再也不必东奔西走了 插件集 插件名称 用途 Vi ...
- 2021.10.19 CSP 模拟赛 总结
T1 题意: \(n\) 个人摘苹果,跳起高度为 \(a_i\),苹果高度为 \(h_i\),高度小的先摘,摘了就没了 直接排序+双指针,复杂度 \(O(n+m)\) T2 题意:要轰炸一个有向图的所 ...
- 在 Pisa-Proxy 中,如何利用 Rust 实现 MySQL 代理
一.前言 背景 在 Database Mesh 中,Pisanix 是一套以数据库为中心的治理框架,为用户提供了诸多治理能力,例如:数据库流量治理,SQL 防火墙,负载均衡和审计等.在 Pisanix ...
- 15.LNMP架构的源码编译
LNMP架构的源码编译 目录 LNMP架构的源码编译 编译安装 Nginx 服务 1.关闭防火墙 2.安装相关依赖包 3.创建运行用户 4.解压软件包及配置编译安装 5.优化路径 6.将Nginx 加 ...
- 如何修改 node_modules 里的文件
前言 有时候使用npm上的包,发现有bug,我们知道如何修改,但是别人可能一时半会没法更新,或者是我们特殊需求,别人不愿意修改,这时候我们只能自己动手丰衣足食.那么我们应该如何修改别人的源码呢?首先, ...
- UiPath Excel修改操作
一.Excel 修改操作 1.删除行 (1)控件介绍 Insert/Delete Rows: 在特定位置添加或删除指定数量的行 常用属性介绍: Destination: NoRows: ...
- testNG框架,使用@BeforeClass标注的代码,执行失败不抛出异常,只提示test ignore的解决方法
郁闷了好久的一个问题,排错调试的时候是真滴麻烦... Google一圈,发现是testNG的Bug,升级testNG>=6.9.5,就能解决.
- TMS320F280049 ADC 模块学习
1. 功能概述 2. 总体框图 block diagram 3. 可配置内容灵活分配到各个模块 或 某次转换中 4. 时钟配置 ADC 模块直接分频于系统最高时钟 5. SOC 机制 6. 如 ...
- Kafka Topic Partition Offset 这一长串都是啥?
摘要:Offset 偏移量,是针对于单个partition存在的概念. 本文分享自华为云社区<Kafka Topic Partition Offset 这一长串都是啥?>,作者: gent ...
- 可视化查询(sp_helptext)——快速查询包含指定字符串的存储过程(附源码)
前言 在开发中,随着业务逻辑的调整,修改存储过程是必不可免的. 那怎么定位到需要修改的存储过程呢?一个一个的点开查询?存储过程少的话还行,一旦存储过程过多,这样是很浪费时间的,一个不注意还会遗漏掉. ...