![](https://img-blog.csdnimg.cn/20201014180756927.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
JavaScript基础
tianye00011
这个作者很懒,什么都没留下…
展开
-
DOM元素总结
获取DOM元素document.getElementById([ID]): 基于元素的ID获取到这个元素document是获取元素的上下文(获取元素的范围),getElementById方法的上下文只能是document获取到的结果是一个对象(堆内存:里边储存很多内置的方法和属性)[context].getElementByTagName([标签名]:) 在指定上下文中,基于标签名获取到页面中所有的元素标签的集合就算只有一个或没有,获取到的也是一个集合HTMLCollection(一个类数原创 2020-08-21 11:08:57 · 987 阅读 · 0 评论 -
JavaScript中字符串拼接
JS中常用的数学运算除了加法外,都是数学运算,如果遇到非数字类型,先基于Number此案转换为数字类型,再运算一些转换true 1false 0null 0‘’ 0[] 0 //Number([])是数字0,因为[]是对象,先要转化为字符串‘’,然后转换为数字0;但是如果在+中,在转换为‘’后就变成字符串拼接了,到不了数字的运算undefined NaNsymbol不能转 console.log(10 - null) //=>10 console.log(3 * undefi原创 2020-08-21 00:44:35 · 453 阅读 · 0 评论 -
问号传参解析(queryURLParam)(持续更新)
Solution 2function queryURLParams(url) { // 1.获取 ?和 # 之后的文本 let askIdx = url.indexOf('?'), wellIdx = url.indexOf('#'), askText = '', wellText = ''; wellIdx === -1 ? wellIdx = url.length : null; wellText = url.substr原创 2020-08-20 11:14:15 · 635 阅读 · 0 评论 -
时间字符串格式化
splitlet arr = time.split(' ');arrLeft = arr[0].split('/');arrRight = arr[0].split(':')arr = arrLeft.concat(arrRight);arr = arr.map(item => item.length < 2 ? '0' + item : item);time = `${arr[0]}年${arr[1]}月${arr[2]}日 ${arr[3]}时${arr[4]}分${arr[5]原创 2020-08-20 09:58:37 · 121 阅读 · 0 评论 -
JavaScript中的String内置方法
字符串中常用的方法所有用 单引号、双引号、反引号 包起来的都是字符串let str = 'zhufengpeixunyangfanqihang';// 每一个字符串都是由零到多个字符组成的str.length //=>字符串长度str[0] //=>获取索引为零(第一个)字符str[str.length-1] //=>获取最后一个字符str.length-1最后一项索引str[10000] //=>undefined 不存在这个索引//循环输出字符串中的每一个字转载 2020-08-19 09:26:33 · 185 阅读 · 0 评论 -
JavaScript中的Math
数学函数但是它不是一个函数,它是一个对象,对象中存储了很多操作数字的属性方法,因此被称为数学函数console.log(typeof Math); //=>"object"console.dir(Math);/* * Math = { * PI:3.141592653589793, * abs:function(){[native code]}, * ceil:function(){[native code]}, * ... * } * *原创 2020-08-18 17:47:40 · 86 阅读 · 0 评论 -
Javascript中数组去重(持续更新)
Solution 1会造成数组塌陷// 最后一项不用再和后边的比了for (let i = 0; i < arr.length - 1; i++) { let item = arr[i]; for (let j = j + 1; j < arr.length; j++) { if (item = arr[j]) { arr.splice(j, 1); j--; } }}问题spl原创 2020-08-18 17:11:24 · 98 阅读 · 0 评论 -
JavaScript中的数组(持续更新)
前端开发中数组的重要性真是项目中,从服务器获取到的数据,都是对象或者数组(JSON格式),而且结构层级一般也都是多级的,所以要学会数组/对象的操作,能够根据需求把获取的数据进行有效的解析和处理;而且vue/react开发的时候,我们都不断操作数据,来控制试图的渲染,而且操作的数据也是以对象和数组偏多学习数组要掌握的内容基础的数组操作数组常用的内置方法(浏览器天生给数组提供的方法)数组的排序和去重数组的一些操作arr.length - 1; 数组的最后一项arr[length - 1]原创 2020-08-18 12:49:18 · 187 阅读 · 0 评论 -
JavaScript中的函数
函数创建函数ECStack:(执行函数栈) 浏览器打开后只有一个栈内存EC(G): 全局执行上下文VO(G): 全局变量对象函数和对象都是引用数据类型,创建函数的经历的三个步骤如下:创建一个函数类型的值(引用数据类型)开辟一个16进制的堆内存把函数体中的代码当作”字符串“存储近去把地址存放在栈内存中创建变量(函数名)关联 (在VO(G)中进行,但是VO(G)在EC(G)里, EC(G)在ECStack里为什么要执行函数常见函数只是按照普通存储对象的方法,把函数体原创 2020-08-17 17:51:58 · 65 阅读 · 0 评论 -
对HTML中DOM的理解
获取DOM元素document.getElementById([ID]) 基于元素的ID获取到这个元素document.body 获取页面中的BODY元素document.getElementByTagName([标签名]) 基于标签名获取到页面中所有的元素标签几个基于JS获取到到的DOM元素是“对象数据类型”值,里边博阿含很多浏览器自带的、用来操作元素的键值对对于DOM是对象的理解获取到的元素是对象,储存在堆内存中,里边有很多键值对,正常对象中的键值对的操作都适用 box.id或box原创 2020-08-16 15:26:31 · 156 阅读 · 0 评论 -
面试题——js基础(持续更新)
面试题1!(!"Number(undefined)") //=> true注意这是字符串面试题2isNaN(parseInr(new Date())) + Number([1]) + typeof undefined// 2undefined原创 2020-08-15 09:30:37 · 89 阅读 · 0 评论 -
i++, i += 1 和i = i + 1 一样吗?
相同点都是在自身的基础上累加1不同点i++ 浏览器会做特殊处理(会把其转换为数字再进行累加)i++ // a = Number(a) + 1面试题let a = "10";a == 10 ? a++ : a--;console.log(a);//11原创 2020-08-15 09:11:44 · 384 阅读 · 0 评论 -
JavaScript中的遍历(查漏补缺)
FOR IN遍历对象中的每一个属性:无法直接获取到对象有多少属性(ES6中的Object.keys除外),也就无法知循环多少次,所以无法使用for循环,再真实项目中遍历对象基于FOR IN循环FOR IN遍历时,是按照“从大到小”优先遍历数字属性的var obj = { name : "一一", age : "18", hobby : "eat", character : "cute", // 遍历的顺序是0,10,name, age... 10 : 1原创 2020-08-15 08:49:23 · 135 阅读 · 0 评论 -
JavaScript的判断语句
三元运算法// 如果条件成立或者不成立的时候,不想做一些事,则使用null/undefined占位,不占位会报错x > 0 ? (x++, console.log(x)) : null;// case 2let x = 10;if (x > 0){ if (x < 10) { x++; } else { x--; }} else { x--;}// 等价于x > 0 ? (x < 10 ? x++ : x--) : x--;原创 2020-08-14 22:16:02 · 109 阅读 · 0 评论 -
JavaScript中比较两个值是否相等 == 和===
== 相等如果左右两个数据类型不同,先默认转换为相同的数据类型,然后再进行比较=== 绝对相等需要保证左右两边的数据类型和值都一样才会相等Object.is ES6新增的方法console.log(10 == "10");//TRUEconsole.log(10 === "10");//FALSEconsole.log("10" == "10");//TRUE...原创 2020-08-14 17:37:09 · 495 阅读 · 0 评论 -
浏览器底层相关--堆栈内存篇
渲染机制1.在浏览器中打开页面,浏览器引擎会渲染相关的代码,换句话说会把代码从上往下执行2.浏览器要执行代码,会提供一个供代码执行的环境,叫做ECStack(Execution Context Stack 环境执行上下文)=> 栈内存3.最开始执行的是全局代码,会形成一个EC(GLOBAL)全局执行上下文,在栈内存中执行全局的代码4.在全局执行中有一个VO(GLOBAL)全局对象,可以吧定义的变量和值存储在这里边定义变量的三个步骤基本类型变量let a = 12;1.创建值12(基本原创 2020-08-14 16:32:07 · 273 阅读 · 0 评论 -
JavaSript中数据类型的检测(持续更新)
数据类型基本数据类型:Boolean Number String null undefined symbol BigInt引用数据类型:object(普通对象、数组对象、正则对象、日期对象…)、functionJS中数据类型的检测1.typeof [value]检测的结果是一个字符串(number、object、function、bigint…)特殊的检测结果NaN/Infinity是numbernull的结果是object(暂时性死区)其实就是浏览器的bug,null是空对象指针原创 2020-08-14 15:12:21 · 124 阅读 · 0 评论 -
JavaScript中常用的输出方式
1.console 控制在浏览器控制台输出console.log() 控制台输出输出任意数据类型的数据,一次可以输出多个值console.dir() 控制台详细输出输出一个对象或一个值的详细信息,一次输出一个值function func(){}console.dir(func)//输出函数的具体信息:argument、caller、length、nameconsole.table() 把数据以表格的形式输出在控制台把多维的JSON数据以表格形式输出console.time()/ti原创 2020-08-13 15:56:55 · 229 阅读 · 0 评论 -
JavaScript中的变量
变量的定义真实存在的是值变量:可变的量,是一个虚拟的概念,本身没有什么意义,是用来代表和指向具体值的,给真实存在的值取了个名字JS创建变量的几种方式ES3:varES6:let、constfunction 创建函数创建了一个变量,指向函数function func(){}//此时会打印这个函数console.log(fun);class创建一个类创建一个变量Dog,让其指向这个类class Dog {}//此时会打印这个类console.log(Dog);原创 2020-08-13 15:55:12 · 101 阅读 · 0 评论