
js
文章平均质量分 60
Js知识记录
chen__cheng
1.1的n次方
展开
-
安装局部的typeScript环境
在学习typeScript知识时,会考虑配置typeScript环境,但又不想全局安装,局部安装ts环境就来了。本文主要介绍如何搭建一个简单的ts运行环境供学习ts使用。原创 2024-07-02 19:50:05 · 356 阅读 · 0 评论 -
什么是RIA AIR Flex
什么是RIA AIR Flex1. 什么是RIA1.1 定义1.2 技术特性1.3 应用价值2. 什么是AIR3. Flex 是什么? flex和flash是什么关系?4. ADOBE AIR到底是什么?4.1 AIR发展空间与背景4.2 AIR到底是什么?4.3 AIR的新特性4.4 总结:1. 什么是RIA1.1 定义RIA是Rich Internet Applications的缩写,翻译成中文为丰富互联网应用程序。丰富互联网应用程序是将桌面应用程序的交互的用户体验与传统的Web应用的部署灵活性结转载 2021-02-17 10:07:17 · 302 阅读 · 0 评论 -
Promise总结
Promise总结Promise理解Promise语法promise的状态改变promise对象的值promise工作流程Promise API常见问题使用Promise封装异步操作自定义封装PromiseAPIasync和await语法糖Promise理解Promise是javascript中进行异步编程的新解决方案从语法上来说:Promise是一个构造函数从功能上来说:Promise对象用来封装一个异步操作并可以获取其成功/失败的结果值。异步编程:定时器ajaxfs 文件操作(no原创 2021-10-11 13:08:05 · 532 阅读 · 0 评论 -
AJAX知识总结
AJAX知识总结Ajax简介XMLHTTPAjax使用设置请求头获取json数据超时和网络异常处理取消请求重复请求问题Jquery中使用Ajaxfetch发送请求ajax工具库-axios跨域问题Ajax简介Ajax(Asynchronous JavaScript And XML),可以通过其在浏览器中向服务器发送异步请求,无需刷整个页面就可以获取数据。Ajax不是新的编程语言,而是一种将现在的标准组合在一起使用的新方式使用场景:实现懒加载,当需要展示某一数据时再去请求数据优点:无需刷新整个页原创 2021-09-29 15:13:45 · 479 阅读 · 0 评论 -
nodejs中使用ES6的import / export
(node9以前)nodeJs虽然可以实现99%的ES6的新特性,但是在NodeJs中使用ES6的import/export仍然有一定的困难.虽然不能直接使用,但是可以间接使用.使用转换器babel安装npm包-babel,使用babel将js文件编译成nodejs支持的commonJs格式的代码.下载-babel包:npm install babel-register babel-preset-env -D接着可以使用命令运行含有import/export语句的js文件babel-nod原创 2021-06-28 17:28:43 · 3259 阅读 · 6 评论 -
import和require的区别和使用
相同:import和require都是模块化编程的产物区别:遵循规范:require是AMD规范引入的方式import是es6的一个语法标准,如果要兼容浏览器的话必须转化为es5的语法。调用时间:require是运行时调用,所以可以放置在模块任何位置。只能在运行时确定模块的依赖关系以及输入/输出变量,无法进行静态优化。import是编译时调用,所以必须放置在模块头部。支持编译时静态分析,便于JS引入宏和类型检验。动态绑定。本质require是赋值过程,因此对于对象赋值,是一种浅拷原创 2021-06-28 16:14:58 · 1405 阅读 · 0 评论 -
(js)map 和 forEach的区别
map 和 forEach的区别map和forEach都是数组原型上的函数都可以遍历数组的元素。使用break都会报错。都有四个参数匿名函数中的this默认指向window对空数组不会调用回调函数不同之处在于:map:创建一个新数组,其内元素是对每个数组元素应用所给的函数返回的结果构成map返回的结果。forEach:不会返回执行结果,而是undefined。其return不起作用。forEacharr.forEach(callback(currentValue [, index原创 2021-06-28 09:30:08 · 198 阅读 · 0 评论 -
artTemplate模板引擎
artTemplate模板引擎1. 什么是模板引擎2.模板引擎理解3.artTemplate模板引擎1. 浏览器2.NodeJS3.客户端渲染与服务端渲染的区别1. 什么是模板引擎模板引擎简单的理解就是:按照某种规则处理数据并显示,而此规则就是模板,按照该模板将数据传入,不用关于数据如何处理的,只需要关心数据的显示即可。模板引擎不关心内容,只关心规则。此外最开始的模板引擎出现于服务器,最后才不断引入到了客户端2.模板引擎理解最初没有模板引擎时的做法当有大量数据的时候var joson = [原创 2021-03-08 07:41:29 · 540 阅读 · 0 评论 -
js构造器模式和工厂模式
1.构造器模式构造器当新对象的内存被分配后,用来初始化对象的一个特殊的函数什么是构造器模式构造器模式即以构造器的角度来创建对象,通过对比以不同构造器的方式创建对象,选择出最佳性能来创建对象es5之前创建对象的方式// 1.字面量var obj = { uname: 'zt', age: 19}// 2.Object对象创建空对象 不方便对象属性赋值var obj2 = new Object();// 3.Object.create()方式常见可继承于某个对象原创 2021-03-07 09:33:26 · 213 阅读 · 0 评论 -
es6 Symbol数据类型
转载自https://www.runoob.com/w3cnote/es6-symbol.html概述ES6 引入了一种新的原始数据类型 Symbol ,表示独一无二的值,最大的用法是用来定义对象的唯一属性名。ES6 数据类型除了 Number 、 String 、 Boolean 、 Objec t、 null 和 undefined ,还新增了 Symbol 。基本用法Symbol 函数栈不能用 new 命令,因为 Symbol 是原始数据类型,不是对象。可以接受一个字符串作为参数,为新创建的转载 2021-03-04 19:57:23 · 111 阅读 · 1 评论 -
js3_es6基础
js3_es6基础一、类和对象1.1 概念1.2 创建类1.3 创建对象1.4 类的继承1.5 类的本质二、函数2.1 函数的定义2.2 函数的调用2.3 改变函数内部的this指向2.4 严格模式2.5 高阶函数2.6 浅拷贝和深拷贝三、正则表达式3.1概述3.2 创建正则表达式3.3 验证正则表达式3.4 正则表达式替换四、es64.1 什么是es64.2 es6自增语法4.3 let4.4 const4.5 解构赋值4.6 剩余参数4.7 扩展运算符4.8 箭头函数4.9 模板字符串4.10 set数原创 2021-03-03 11:40:08 · 220 阅读 · 0 评论 -
es6 Set数据结构
es6提供了新的数据结构Set。类似于数组,但是不同于数组的是,Set数据结构成员的值都是唯一的,没有重复的值创建Set数据Set本身是一个构造函数,用来生成Set数据结构创建空的Set数据const s = new Set();接受一个数组作为参数,用于初始化const set = new Set([1,2,3,4]);应用:数组去重由于Set数据结构数据成员的唯一性,因此可以用其对数组元素去重,再利用扩展运算符转换为数组const set = new ..原创 2021-03-03 11:29:19 · 211 阅读 · 0 评论 -
es6模板字符串
es6新增的创建字符串的方式,使用反引号定义let str = `模板字符串`;console.log(str);特点可以解析变量。将变量放于${}中let val = 123;let str2 = `模板字符串${val}`;console.log(str2);现在在模板字符串的字符串换行书写,同时显示也会进而换行显示let obj = { uname: 'zt', age: 18}let str3 = ` <div>模板字符串..原创 2021-03-03 10:34:08 · 420 阅读 · 0 评论 -
es6箭头函数
es6中新增的定义函数的方式(arg1,arg2,...) => {函数体};// ()放参数,{}中作为函数体// 等价于function (arg1,arg2,...) { 函数体;}箭头函数的调用采用函数表达式的方式,用变量进行接收const fn = (n) => { return n * 10}; console.log(fn(3));注意:函数体中只有一句代码,且代码的执行结果就是返回值,可以省略大括号const fn..原创 2021-03-03 08:44:55 · 154 阅读 · 0 评论 -
es6解构赋值+剩余参数+扩展运算符
es6解构赋值1. 数组解构2. 对象解构解构:分解数据解构,赋值:给变量赋值。es6中允许从数组中提取值,按照对应位置,对变量赋值。对象也可以实现解构1. 数组解构let arr1 = [1,2,3];let [a,b,c] = arr1;// [a,b,c]表示解构,而不是数组console.log(a);// 1console.log(b);// 2console.log(c);// 3[a,b,c]与数组中的数据进行一一匹配左边解构变量个数小于右边数组数据个数仍然一一对应关原创 2021-03-03 08:14:34 · 543 阅读 · 0 评论 -
es6之let/const关键字
1. letes6中新增的用于声明变量的关键字,let声明的变量只在所处于的块级有效,针对于es6新增的块级作用域if (true) { let a = 1;}console.log(a);// a is not defined;特别注意:一个块级作用域中存在子作用域,子作用域可以访问父作用域,但是父作用域不可以访问子作用域if (true) { let a = 1; if (true) { let b = 1; console.log(a)原创 2021-03-02 16:35:34 · 116 阅读 · 0 评论 -
js正则表达式
js正则表达式1概述2 创建正则表达式3 验证正则表达式4 正则表达式替换1概述 正则表达式在js中作为对象存在2 创建正则表达式通过对象方式创建var regexp = new RegExp(/123/);通过字面量的形式创建var rp = /\w/;注:/里面写的正则表达式不加引号,即使是字符串或者数字都不加引号/3 验证正则表达式采用对象方法test()来进行验证,只要字符串某一片段满足该正则表达式,则返回true,否则返回false。如果要对数据匹配等进原创 2021-03-02 15:20:39 · 72 阅读 · 0 评论 -
js浅拷贝/深拷贝
js浅拷贝/深拷贝简单理解1. 概述2. 浅拷贝3. 深拷贝1. 概述浅拷贝只是拷贝一层,针对于更深层次的对象级别的数据,只是拷贝引用,因此拷贝之后再修改对象数据时,会把原来的数据一并进行修改操作。深拷贝拷贝多层,每一级别的数据都会拷贝,而对象级别的数据则会另开辟新的空间2. 浅拷贝es6新增方法实现浅拷贝:Object.assign(target,…sources)js实现浅拷贝var o = { uname: 'zt', age: 19,原创 2021-03-01 17:01:53 · 108 阅读 · 0 评论 -
js高阶函数
高阶函数1. 概念2. 接收函数作为参数:回调函数3. 将函数作为返回值输出:闭包1. 什么是闭包2. 闭包的作用1. 概念对其他函数进行操作的函数,其接收函数作为参数/将函数作为返回值输出。2. 接收函数作为参数:回调函数3. 将函数作为返回值输出:闭包1. 什么是闭包有权访问另一个函数作用域中变量的函数。也即一个作用域可以访问另一个函数内部的局部变量,而被访问的局部变量所在的函数便为闭包。简单的可以认为:闭包就是一种现象,一个作用域可以访问另一个函数内部局部变量的一个现象,也可以认为子函数访原创 2021-03-01 10:23:01 · 95 阅读 · 0 评论 -
js严格模式
js严格模式1. 什么是严格模式1. 概念2. 严格模式对正常模式下的js语义的一些更改3. 注意2. 开启严格模式2. 为脚本开启严格模式3. 为函数开启严格模式3. 严格模式中的变化1. 变量规定2. 严格模式下this指向问题3. 函数变化4. 其他1. 什么是严格模式1. 概念 js提供了正常模式以及严格模式。es5的严格模式是采用具有限制性js变体的一种方式,也即在严格模式下运行js代码,需要严格按照一定的严格的规范才能够通过js解释器解析。2. 严格模式对正常模式下的js语义的一些更原创 2021-03-01 08:07:06 · 314 阅读 · 1 评论 -
es6之类和对象
es6之类和对象1.1 概念1.2 创建类1.3 创建对象1.4 类的继承1.5 类的本质1.1 概念es6中新增加了类的概念,可以使用class关键字声明一个类1.2 创建类实例 类似于Javaclass Star { constructor(name) { this.uname = name; } song() { console.log(this.uname); }}var zt = new Star('zt');c原创 2021-02-25 16:08:54 · 125 阅读 · 0 评论 -
js原型链
原型链关系图如下:原创 2021-02-18 15:17:58 · 84 阅读 · 0 评论 -
js基础(ecamscript语法+DOM+BOM)
js基础_01一、初识javascript二、ecmascript语法2.1变量2.2数据类型2.3标识符2.4运算符2.5流程控制分支2.6命名规范2.7数组2.8函数2.9预解析2.10对象2.11内置对象2.12 简单类型2.13堆栈三、DOM3.1简介3.2DOM树3.3获取页面元素3.4js事件3.5节点操作3.6高级事件3.6.1注册事件(绑定事件)/ 删除事件3.6.2 DOM事件流3.6.3 事件对象3.6.4常用的鼠标事件3.6.5鼠标事件对象3.6.6常用键盘事件3.6.7键盘事件对象四原创 2021-02-09 17:10:04 · 1136 阅读 · 0 评论 -
js根据用户使用不同终端跳转不同页面
实现根据打开终端的不同跳转页面if ((navigator.userAgent.match(/(phone|pad|pod|iPhone|ios|iPad|Android|Mobile|BlackBerry|IEMobile |MQQBrowser|JUC|Fennec|woSBrowser|BrowserNG|WebOS|Symbian|Windows Phone)/i))) { window.location.href = " ";// 手机} else { window.locat原创 2021-02-03 22:50:48 · 908 阅读 · 0 评论 -
js执行机制
js最大特点是单线程的,单线程意味着所有任务需要排队,这样会导致一个问题:如果js执行时间过长,这样就会造成页面的渲染不连贯,导致页面渲染加载阻塞的感觉。为了解决这个问题,利用多核CPU的计算能力,HTML5提出Web Worker标准,允许javascript脚本创建多个线程,于是js出现了同步和异步。js执行机制将任务分为同步任务和异步任务同步任务同步任务都在主线程上执行,形成一个执行栈异步任务js的异步是通过回调函数实现的,分为以下三类普通事件:click等资源加..原创 2021-02-03 17:49:31 · 1642 阅读 · 5 评论 -
js注册事件和删除事件兼容性解决方案
/** * 注册事件 * @param element 元素对象 * @param eventName 事件名称 * @param fn 注册监听事件 */function addEventListener(element,eventName,fn) { // 判断当前浏览器是否支持 addEventListener 方法 (ie9以上) if (element.addEventListener) { element.addEventListener(eventN原创 2021-02-01 21:48:25 · 127 阅读 · 0 评论 -
js三种动态创建元素的区别
概述js节点操作中有三种方式来动态创建元素,分别为:document.write()element.innerHTMLdocument.createElement采用以上三种方式会有不同的优缺点,为了在不同的场景下更为恰当的选择方法来创建元素,接下来对这三种方式进行分析总结。1. document.write()使用方法document.write('<div>This is a Test</div>');作用在页面文档添加元素使用弊端当页面文档流加载完原创 2021-02-01 18:02:03 · 294 阅读 · 0 评论