js
js基础
lq_1999
小白一个,博客仅为个人笔记,若有出错,望指正
展开
-
JS常见数组方法
迭代 Array.forEach()可通过对每个数组元素执行函数进行遍历,但不会返回新数组,不改变原数组Array.map()可通过对每个数组元素执行函数返回新的数组,不改变原数组,不会对没有值的数组元素(元素为undefined时返回NAN)执行map方法Array.every()判断数组是否所有元素都符合判断条件,返回 boolean 类型Array.some()判断数组是否有元素符合判断条件Array.filter()返回数组中符合条件的元素Array.redu..原创 2022-05-29 15:27:14 · 226 阅读 · 0 评论 -
原型和原型链(包括ES6的class继承)
原型和原型链原创 2021-11-16 11:31:11 · 416 阅读 · 0 评论 -
深入解析DOM树的加载
DOM树在介绍 DOM 树之前,首先要清楚,DOM 规范中,对于文档的表示方法并没有任何限制,因此,DOM 树只是多种文档结构中的一种较为普遍的实现方式。DOM 结构构成的基本要素是 “节点“,而文档的结构就是由层次化的节点组成。在 DOM 模型中,节点的概念很宽泛,整个文档 (Document) 就是一个节点,称为文档节点。除此之外还有元素(Element)节点、属性节点、Entity节点、注释(Comment)节点等。了解了 DOM 的结构是由各种的子节点组成的,那么以 HT...原创 2021-11-21 11:20:35 · 1183 阅读 · 0 评论 -
深拷贝和浅拷贝的几种方式
js 值类型的存储形式--值类型以栈(后进先出)的形式存储;引用类型以栈和堆相结合的形式存储代码演示 /* 值类型在栈中存储的value是值,b复制了a,只是拷贝了a的值,b重新赋值对a没有影响 */ var a = 'hello'; var b = a; b = 'world' console.log(a,b);//hello world /** * 引用类型的值存储在.原创 2021-11-16 11:30:44 · 2233 阅读 · 1 评论 -
js舍入误差
浮点数小数相加时出现误差 console.log(0.1 + 0.2) //0.30000000000000004 /** * 根据IEEE二进制浮点数算术标准(IEEE 754) * 0.1 => 0.1110101111 0.2 => 0.0000110101 * console.log(0.1.toString(2)); //0.000110011001100110011001100110.原创 2021-11-16 14:33:37 · 103 阅读 · 0 评论 -
for循环的优化
一、嵌套for循环--外小内大原则 //优化前 for(var j=0;j<100;j++{ for(var i=0;i<10;i++){ } } //优化后 for(var i=0;i<10;i++){ for(var j=0;j<100;j++){ } }二、消除循环终止判断时的方法调用 /* 优化前 */ for(va..原创 2021-11-16 14:56:37 · 1122 阅读 · 0 评论 -
this指针
this的用法指代当前调用的这个对象:4种绑定规则分别是:默认绑定、隐士绑定、new绑定。优先级从低到高 var name='tom'; var obj= { getName: function(){ console.log(this+' '+this.name);//this指向对象本身 }, getAge: function(){ .原创 2021-11-18 19:40:36 · 235 阅读 · 0 评论 -
数组的排序
sort方法排序 1、默认升序2、将排序的元素转化为字符串['3','22','18','9'],找字符串对应的Unicode码表//Unicode码表 排序 1234(数字) ABC(大写) abc(小写) 好(字符串) var arr1 = ['二','a',5,'A'] console.log(arr1.sort()); //[5, 'A', 'a', '二'] var arr2=[1,5,6,2,4,3]; co...原创 2021-11-18 20:46:42 · 339 阅读 · 0 评论 -
js的三种包装对象(内置对象)
js常见的内置对象有:三种包装对象:String、Number、Boolean 其他常用的标准内置对象:Object、Array、Function、Math、Date ...三种包装对象:--值本身是基本类型数据例如:定义一个字符串变量,并调用chatAt()方法用new方法创建包装对象 var str = new String('hello'); console.log(str); //String{'hello'} console.log(...原创 2021-11-19 15:28:34 · 640 阅读 · 0 评论 -
面试常见-- 装箱和拆箱的理解
装箱:把基本数据类型转化为对应的引用数据类型的操作 var num = 123; //number类型 var objNum = new Number(123); console.log(typeof objNum); //object拆箱:将引用类型对象转化为对应的值类型对 --valueOf() var objNum= new Number(123); console.log(typeof objNum.valueOf()); .原创 2021-11-19 15:57:42 · 239 阅读 · 0 评论 -
Ajax+koa2简单介绍
Koa搭建后端平台什么是Koa? ———基于Node.js平台的下一代web开发框架官网:https://www.koajs.com.cn环境搭建1、安装node.s2、脚手架安装:npm i -g koa-generator3、创建项目:koa2 projectname(项目名)4、安装依赖:npm i5、项目启动:npm run dev6、访问:http:localhost:3000;访问资源(根目录):/publicAjax基本框架前端/h...原创 2021-11-23 10:30:12 · 690 阅读 · 0 评论 -
Ajax+koa2简单实例演示
1、html头部引用前端模板<script src="javascripts/template-web.js"></script>2、简单样式 <style> *{ padding: 0;margin: 0; } ul,ol{ list-style: none; } img{ display: block; } #sports-header{ position原创 2021-11-23 10:58:53 · 525 阅读 · 0 评论 -
axios简单介绍
axios是一个基于promise的HTTP库,可以用在浏览器和Node.js中。从浏览器中创建XMLHttpRequest,从Node.js创建http请求;中文官网:https://www.axios-http.cn/axios的GET和POST请求可向后端发送数据同时接收后端的响应数据axios GET请求--两个参数,(可省略)第二个参数可配置请求和响应参数1、形式一 //也可以用url"?...的形式向后端发送数据,例...原创 2021-11-24 10:58:21 · 2466 阅读 · 0 评论 -
axios实现上拉下拉演示
官网:https://better-scroll.github.io/docs/zn-CN1、准备工作koa2搭建后端环境并启动项目:https://blog.csdn.net/lq_1999/article/details/121488312 在项目中安装axios以便于后端(router)引用在终端输入 npm i -S axios2、html头部引用前端模板 <script src="javascripts/template-web.js">&l...原创 2021-11-28 12:11:55 · 689 阅读 · 0 评论 -
常见类型转换有哪些坑
特殊类型的隐形转换(5种)--NaN, 0, undefined, null, "" ==> false 在条件判断时,判断参数的类型为这五种时,返回flase,例如if(val) {//val为NaN, 0,...的时候执行else}else{ }类型转换 var bool = Boolean(NaN); console.log(bool); // false 逻辑运算符 && 和 || 在隐式转换下的...原创 2021-11-16 13:51:26 · 87 阅读 · 0 评论 -
type of 和 instanceof
typeof可以检测那些类型识别所有值类型--undefined/ number/ string/ symbol/ 识别函数类型原创 2021-11-16 11:31:49 · 252 阅读 · 0 评论 -
自调用函数(立即执行函数)
写法一: !function() { alert("写法一") }()写法二: (function() { alert("写法二") })() 应用-- 闭包 for(var i =0;i < 3 ;i++) { !function(num){ alert(num) }(i) }...原创 2021-11-18 16:17:26 · 139 阅读 · 0 评论 -
异步(基础)
一、同步和异步有何不同单线程和异步js是单线程语言,只能同时做一件事 浏览器和node.js已支持JS启动进程,如Web Worker JS和DOM渲染共用同一个线程,因为JS可修饰DOM结构 遇到等待(网络请求,定时任务)时不能卡住,就需要异步 回调callback函数的形式同步 //同步 console.log(111); alert(222) console.log(333);异步 //异步原创 2021-12-02 15:03:42 · 115 阅读 · 0 评论 -
闭包的理解
闭包:理解关键--作用域闭包是引用了自由变量的函数,这个被引用的自由变量将和这个函数一同存在,即使已经离开了创造它的环境也不例外。所以,有另外一种说法认为闭包是由函数和其相关的引用环境组合而成特点/ 好处: 实现了信息的驻留(信息的保持,引用依旧存在,空间不销毁)简单的闭包: var Person = function() { var count = 0; return function add(){ return cou.原创 2021-11-18 15:46:59 · 74 阅读 · 0 评论 -
图解JS执行环境
浏览器环境栈:JS是一个单线程执行执行环境:EC execution context;分为全局执行环境 、局部执行环境变量对象:VO --一般是全局环境中保存变量的对象活动对象:AO --函数的执行环境是在调用时创建的,该对象将代替VO来保存当前函数环境中的变量、参数、函数,所以在函数执行环境中VO就是AO var arr = [{name: 'a1'},{name: 'a2'},{name: 'a3'}]; function fn() { ...原创 2021-11-18 11:47:54 · 388 阅读 · 0 评论 -
作用域和作用域链
作用域scope:一个变量的可用范围作用域链scope chain:以当前作用域的scope属性为起点依次引用每个AO,直到window结束,形成了多级引用关系js作用域:ES5 (这里不讨论ES6的块级作用域)两大类:全局作用域 和 函数作用域解释执行:在执行过程中,JavaScript引擎是严格按着作用域机制(scope)执行的,并且JavaScript变量和函数的作用域是定义时决定的,而不是执行时决定的;JavaScript的变量在函数体内有效,无块级作用域图解例如,创建一个原创 2021-11-18 11:03:55 · 80 阅读 · 0 评论