数据类型/堆栈内存/闭包/作用域/this
javascript的几座大山之一
深海有鱼呀
永远年轻,永远热泪盈眶
展开
-
i++和++i详细知识
原创 2020-03-19 20:06:43 · 93 阅读 · 0 评论 -
日期对象的基本操作
// 不足10位补0 function addZero(val){ val = Number(val) return val < 10 ? '0' + val : val } // 获取当前时间的详细时间 function getDate(){ let time = new Date() year = time.getFullYear(), month = time.getMonth() + 1, day = time.getDate(), w...原创 2020-12-17 15:35:05 · 90 阅读 · 0 评论 -
数组及数组中常用的方法
数组是对象类型的,它属于特殊的对象数组中常用方法方法的作用和含义方法的实参(类型和含义)方法的返回值原来的数组是否发生改变1.实现数组的增删改的方法这一部分方法都会修改原有的数组pushpush: 向数组末尾增加内容@params(参数) 多个任意类型 @return 新增后数组的长度unshiftunshift: 向数组开始位置增加内容@pa...原创 2020-12-17 14:04:00 · 711 阅读 · 0 评论 -
函数的底层执行机制
浏览器想要执行js代码,就会从电脑中分配出一块内存执行代码(栈内存)每一次函数执行都会开辟一个全新的私有栈内存(所以函数内部的变量不能被外部访问,只能return出去)...原创 2020-04-06 21:45:20 · 221 阅读 · 0 评论 -
作用域和作用域链
作用域作用域也就是创建函数时当前执行上下文存储变量的地方(VO/AO)作用域链变量取值的过程,先在自己执行上下文中的变量对象中找看是否是自己AO中的私有变量,找不到就去上级作用域查找,有则停止,无就继续,一直找到全局作用域。...原创 2020-04-15 03:00:58 · 106 阅读 · 0 评论 -
闭包
闭包函数执行形成一个全新的执行上下文,进栈执行后所创建的一些变量被外部所引用,不能出栈销毁,就形成了闭包。作用:延长了局部变量的生命周期,保护全不被污染缺点:函数不能被出栈销毁,频繁使用会造成内存泄漏问题。解决方法:手动销毁 fn=null...原创 2020-04-19 18:04:44 · 102 阅读 · 0 评论 -
内存泄露和内存溢出
内存溢出: 指程序在申请内存时,没有足够的内存空间供其使用。一种程序运行出现的错误,当程序运行需要的内存超过了剩余内存时,就会跑出内存溢出的错误。内存泄露:指程序在申请内存后,无法释放已申请的内存空间,导致一直占用着改内存单元,一次内存泄露危害可以忽略,但是内存泄露堆积后果很严重,无论多少内存,迟早被占光。内存泄露的危害: 1、导致系统中可用的内存越来越少。直到所有的可用内存用完最后导致系统无...原创 2020-06-19 16:28:33 · 128 阅读 · 0 评论 -
let、var、const的区别和变量提升
变量提升在当前执行上下文代码执行之前,首先会把带有var或者function关键字的声明或者定义(带var的只会提前声明,带function会提前声明+定义(赋值))var和let的区别1、var:有变量提升let:没有变量提升2、在全局执行上下文中用var声明一个变量,也会给全局对象GO中(window)增加一个对应的属性;但是用let声明的变量不存在这个特点;注:3、带v...原创 2020-04-23 01:29:00 · 252 阅读 · 0 评论 -
js数据引用数据类型-函数的基础概念
函数 function函数就是一个方法或者一个功能体,函数就是把实现某个功能的代码放到一起进行分装,以后想要操作实现这个功能,只需要把函数执行即可 =>“分装”:减少页面中的冗余代码,提高代码重复使用率(低耦合高内聚)创建函数形参返回值执行函数实参arguments函数底层运行机制…创建函数es5方式匿名函数...原创 2020-03-13 13:54:58 · 148 阅读 · 0 评论 -
字符串的常用方法
截取slice(start,end) : 返回字符串中提取的子字符串(不包括 end 处的字符)start,end 为索引可以是负数,-1 指字符串的最后一个字符,-2 指倒数第二个字符,以此类推。var str="Hello World";var str1=str.slice(2); //如果只有一个参数,则提取开始下标到结尾处的所有字符串var str2=str.slice(2,7); //两个参数,提取下标为2,到下标为7但不包含下标为7的字符串var str3=str.slice原创 2020-08-29 23:41:40 · 130 阅读 · 0 评论 -
arr.reduce()
arr.reduce()方法接收一个函数作为累加器,数组中的每个值(从左到右)开始缩减,最终计算为一个值。arr.reduce(callback(accumulator, currentValue[, index[, array]])[, initialValue])callback:行数组中每个值的函数,包含四个参数;initialValue:初始值accumulator:累计器累计回调的返回值; 它是上一次调用回调时返回的累积值,或initialValuecurrentValue:数组中原创 2020-08-13 16:56:24 · 1401 阅读 · 0 评论 -
JS中的操作语句:判断、循环
判断条件成立做什么?不成立做什么?if/else if/else if三元运算符switch case1、if/else if/else if2、三元运算符3、switch case循环重复做某些事情就是循环for循环for in循环for of循环(ES6新增)while循环do while循环...原创 2020-03-12 13:30:01 · 254 阅读 · 0 评论 -
slice、splice、concat操作后数组的变化
一、splice() 用于插入 删除 替换(会改变原始数组)1、参数至少两个(index,number,item…,item)index:开始的下标 必须的number:要删除的数量,如果是0就不删除,必须的item:添加的元素var fruits = ["Banana", "Orange", "Apple", "Mango"];fruits.splice(2,0,"Lemon","Kiwi");结果:Banana,Orange,Lemon,Kiwi,Apple,Mango2、会改转载 2020-07-24 14:26:08 · 1756 阅读 · 0 评论 -
数组遍历方法集合
for 循环可以改变原数组,而forEach和map相当于把原数组进行浅拷贝进行遍历,不能改变原数组的每一项,但是原数组中某一项是引用类型的话可以改变其内的值。for循环var arr = [1,2,4,6]for(var i = 0;i < arr.length; i++){ console.log(arr[i])}forEach 语句遍历数组中的每一项,没有返回值,对原数组没有影响,不支持IEvar arr = [1,5,8,9]arr.forEach(funct.原创 2020-07-03 11:52:00 · 137 阅读 · 0 评论 -
数据类型转换以及==比较
把其他数据类型转换为Number类型/* * 把其他数据类型转换为Number类型 * 1.特定需要转换为Number的 * + Number([val]) * + parseInt/parseFloat([val]) * 2.隐式转换(浏览器内部默认要先转换为Number在进行计算的) * + isNaN([val]) * + 数学运算(特殊情况:+在出现字符串的情况下不是数学运算,是字符串拼接) * + 在==原创 2020-06-22 15:56:33 · 259 阅读 · 0 评论 -
JS数据类型检测
JS中的数据类型检测typeof[val] : 用来检测数据类型的运算符面试题: 自右向左检测instanceof : 用来检测当前实例是否率属于某个类constructor : 基于构造函数检测数据类型(也是基于类的方式)Object.prototype.toString.call() : 检测数据类型最好的办法...原创 2020-03-11 19:30:31 · 163 阅读 · 0 评论 -
元素对象的深一层理解
思考为什么不可以改?原创 2020-03-12 17:24:30 · 78 阅读 · 0 评论 -
js数据类型的区别(堆栈底层机制)
一个变量只能关联一个值,修改变量也就是让变量重新指向一个值阿里面试题let a={n:1}let b=a;a.x=a={n:2}console.log(a.x)console.log(b)重点:赋值语句的执行顺序是从右至左a.x=a={n:2}就相当于 a.x={n:2} a={n:2}例: var a = b = 10;var a = b = 10; 就...原创 2020-03-11 19:30:06 · 199 阅读 · 0 评论 -
js数据引用数据类型-Object对象数据类型
Object对象数据类型-普通对象![在这里插入图片描述](https://img-blog.csdnimg.cn/20200311150042734.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3dlaXhpbl80MjA2OTE0...原创 2020-03-11 19:29:47 · 282 阅读 · 0 评论 -
js数据基本数据类型-Boolean(布尔数据类型)、null、undefined详解
Boolean 布尔数据类型只有两个值 true/false把其它类型值转换成布尔类型只有0、NaN 、null、’’、undefined 五个值转换为false,其余都转换为true(而且没有任何的特殊情况)Boolean()!/!!条件判断null、undefinednull和undefined都是代表是没有null:意料之中(一般都是开始不知道值,我们手...原创 2020-03-11 19:29:28 · 1095 阅读 · 0 评论 -
js数据基本数据类型-string(字符串类型)详解
string字符串数据类型所有用单引号、双引号、反引号( ES6模板字符串)包起来的都是字符串把其他类型值转换成字符串[val].toString()字符串拼接原创 2020-03-11 19:29:15 · 736 阅读 · 0 评论 -
js数据基本数据类型-Number(数字类型)详解
number数字类型包含:常规数字、NaNNaNnot a number: 非数字 不是一个数,但它率属于数字类型NaN和任何值(包括自己)都不相等:NaN!=NaN,所以我们能用相等的方式判断是否为有效数字isNaN检测一个值是否为非有效数字,如果不是有效数字返回true,反之是有效数字返回false在使用isNaN进行检测的时候,首先会验证检测的值是否为数字类型,如果...原创 2020-03-11 19:28:55 · 3765 阅读 · 0 评论