![](https://img-blog.csdnimg.cn/20201014180756724.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
Javascript
南张门
我相信这不是我一个人的经历:傍晚时分,你坐在屋檐下,看着天慢慢地黑下去,心里寂寞而凄凉,感到自己的生命被剥夺了。当时我是个年轻人,但我害怕这样生活下去,衰老下去。在我看来,这是比死亡更可怕的事。
展开
-
h5返回循环的问题
有时我们会遇到这样的需求:A 点击跳到 B, B点击跳到 C,C因为业务逻辑的原因,只能通过window.location.href的方式从C跳到B,这样B返回A时的方式就需要注意了:可以通过这样的方式(这里是vue):let Backlen = history.length - 1;this.$router.go(-Backlen)...原创 2020-12-28 16:48:39 · 462 阅读 · 0 评论 -
解决nuxt引入插件在IE中的兼容问题
1.pc页面在IE11报错最近在做PC端的页面,引入了three.js(3d动画)和vue-baidu-map(百度地图)以及vue-awesome-swiper(定制轮播,采用了高版本的swiper),在chrome浏览器和edg是没有问题的,但是在ie11以及下是不行的,并且因为报错阻塞了页面一些业务逻辑的运行。先来看一下在IE11中的报错(这里只举例引入vue-awesome-swiper引发的错误)看到错误信息:2.错误原因可以看到是因为引入swiper(vue-awesome-swi原创 2020-12-23 13:41:48 · 4059 阅读 · 1 评论 -
h5监听页面返回
在移动端我们常常需要监听页面的返回,例如用户点击返回按钮时,我们需要给一个提示框,提醒用户是否真的要返回。但是ios以及许多的安卓手机可以左滑返回上一页,所以我们需要监听页面的返回if (window.history && window.history.pushState) { pushHistory(); window.addEventListener("popstate", (e)=> { alert('页面要返回了') }, false);}functio原创 2020-11-30 16:48:39 · 3445 阅读 · 0 评论 -
pc端获取浏览器内核和版本
function getBroswer(){ var sys = {}; var ua = navigator.userAgent.toLowerCase(); var s; (s = ua.match(/edge\/([\d.]+)/)) ? sys.edge = s[1] : (s = ua.match(/rv:([\d.]+)\) like gecko/)) ? sys.ie = s[1] : (s = ua.match(/msie ([\d.]+)/)原创 2020-07-14 17:41:45 · 557 阅读 · 0 评论 -
正则表达式
可以参考老姚的JS正则表达式完整教程因为写的标号,已经出书了,下载地址,建议收藏,为防止万一下载不了,网盘地址链接:https://pan.baidu.com/s/1SECWF9NrXUFu8G0o0CWJEA 密码:yvt1MDN的正则表达式...原创 2020-03-08 10:32:40 · 202 阅读 · 0 评论 -
babel的认识
一.简介:babel官网:https://www.babeljs.cn/githup:https://github.com/babel/babelBabel 是一个工具链,主要用于将 ECMAScript 2015+ 版本的代码转换为向后兼容的 JavaScript 语法,以便能够运行在当前和旧版本的浏览器或其他环境中。我这里只是介绍基本的使用方法,详细的可以到官网查看。1.1基本实现的...原创 2020-03-06 12:12:58 · 320 阅读 · 0 评论 -
vue-cli中mock数据
1.老版本的vue-cli在build/dev-server.js文件中 在const express = require(‘express’);//获取更目录下的data.json的数据,并且设置接口const appData = require('../data.json');const foods = appData.foods;app.get('/getFoods',fu...原创 2018-06-25 14:04:18 · 435 阅读 · 0 评论 -
JavaScript日期格式化
1.代码:function formatDateFn(timeStamp, format) { var date = ''; if (typeof timeStamp === 'string' || typeof (timeStamp) === 'number') { date = new Date(parseInt(timeStamp)); } else if (ty...原创 2018-06-25 11:04:12 · 723 阅读 · 0 评论 -
AMD , CMD , CommonJs 和 ES6 对比
1.CommonJS1.1 基本概念为JS的表现来制定规范,因为js没有模块的功能所以CommonJS应运而生,它希望js可以在任何地方运行,不只是浏览器中。同步CommonJS规范 通过model.exports定义的,在前端浏览器中并不支持NodeJS是CommonJS规范的实现,webpack 也是以CommonJS的形式来书写的。CommonJS定义的模块分为: ...原创 2018-05-22 17:26:57 · 2603 阅读 · 0 评论 -
事件
JavaScript事件是由访问Web页面的用户引起的一系列操作,例如:用户点击。当用户执行某些操作的时候,再去执行一系列代码。 事件一般是用于浏览器和用户操作进行交互。最早是IE和Netscape Navigator中出现,作为分担服务器端运算负载的一种手段。直到几乎所有的浏览器都支持事件处理。而DOM2级规范开始尝试以一种复合逻辑的方式标准化DOM事件。IE9、Firefox、Opera、原创 2017-08-24 10:17:09 · 195 阅读 · 0 评论 -
DOM--进阶
DOM自身存在很多类型,在DOM基础课程中大部分都有所接触,比如Element类型:表示的是元素节点,再比如Text类型:表示的是文本节点。DOM也提供了一些扩展功能。一.DOM类型DOM类型 类型名 说明 Node 表示所有类型值的统一接口,IE不支持 Document 表示文档类型 Element 表示元素节点类型原创 2017-08-23 16:27:00 · 217 阅读 · 0 评论 -
DOM--初级
DOM(Document Object Model)即文档对象模型,针对HTML和XML文档的API(应用程序接口)。DOM描绘了一个层次化的节点树,运行开发人员添加、移除和修改页面的某一部分。DOM脱胎于Netscape及微软公司创始的DHTML(动态HTML),但现在它已经成为表现和操作页面标记的真正跨平台、语言中立的方式。一.DOM介绍DOM中的三个字母,D(文档)可以理解为整个Web加载的原创 2017-08-23 16:08:48 · 434 阅读 · 0 评论 -
客户端检测
检测的目的是能力检测不是识别特定的浏览器;怪癖检测: 目的是识别浏览器的特殊行为,也就是bug检测用户的代理字符串,包括检测引擎,平台,windows系统,移动设备和游戏系统 var client = function(){ //引擎呈现 var engine = { ie: 0,原创 2017-08-23 14:12:12 · 285 阅读 · 0 评论 -
解析URL查询字符串
访问 URL 包含的查询字符 串的属性并不方便。尽管 location.search 返回从问号到 URL 末尾的所有内容,但却没有办法逐个 访问其中的每个查询字符串参数。为此,可以像下面这样创建一个函数,用以解析查询字符串,然后返 回包含所有参数的一个对象:function getQueryStringArgs(){ //取得查询字符串并去掉开头的问号 var qs = (l...原创 2018-07-11 14:17:46 · 1993 阅读 · 0 评论 -
检测用户使用的的设备信息
以下是完整的用户代理字符串检测脚本,包括检测呈现引擎、平台、Windows 操作系统、移动设备 和游戏系统。var client = function(){ //呈现引擎 var engine = { ie: 0, gecko: 0, webkit: 0, khtml: 0,...原创 2018-07-11 14:47:11 · 721 阅读 · 0 评论 -
js中书写兼容性的css样式
我们在写CSS的时候会写兼容各个浏览器的CSS前缀,甚至我们已经有了类似于postcss这样的插件,可以自动加上浏览器前缀。但是有时我们需要在JS中增加CSS样式,这时我们再加CSS前缀的时候会比较麻烦类似于下面这样:div.style['transform'] = `translate3d(0, 100px, 0)`;div.style['-webkit-transform'] = `tr...原创 2018-08-28 15:40:31 · 619 阅读 · 0 评论 -
简单的洗牌算法
// 洗牌算法 就是将数据打乱// 就是将随机的数据交换function shuffle(arr) { let newArr = arr; for (let i = 0; i < newArr.length; i++) { let j = _getRandomInt(0, i); let t = newArr[i]; newArr[i] = newAr...原创 2018-08-29 09:50:25 · 300 阅读 · 0 评论 -
进程与线程
1.进程程序的一次执行, 它占有一片独有的内存空间。 例如,我们打开电脑上的chrome,它会占用一定的内存空间,QQ也会在占用一定的内存空间,它们所占用的内存空间是相互独立的,互相是不能够访问的。可以通过windows任务管理器查看进程2.线程是进程内的一个独立执行单元是程序执行的一个完整流程是CPU的最小的调度单元3.图解当我们启动程序A(或者说软件A),...原创 2018-11-22 11:19:08 · 267 阅读 · 0 评论 -
浏览器内核
一. 浏览器内核是什么?浏览器最重要或者说核心的部分是Rendering Engine,可大概译为“渲染引擎”,不过我们一般习惯将之称为“浏览器内核”。浏览器内核负责对网页语法的解释(如标准通用标记语言下的一个应用HTML、JavaScript)并渲染(显示)网页。 所以,通常所谓的浏览器内核也就是浏览器所采用的渲染引擎,渲染引擎决定了浏览器如何显示网页的内容以及页面的格式信息。...原创 2018-11-22 11:19:50 · 241 阅读 · 0 评论 -
JavaScript执行机制
一.了解JavaScriptJavaScript运行在V8 引擎上,是一种脚本语言,一门弱类型语言,一门单线程语言(如果不了解何为线程,可以看我以前的博客)。1.1为何JavaScript采用单线程呢?JavaScript语言是单线程的,所谓的单线程就是同一个时间只能做一件事。JavaScript的之所以采用单线程,是因为JavaScript的主要用途是与用户互动,以及操作DOM。如果Ja...原创 2018-11-22 11:20:49 · 148 阅读 · 0 评论 -
常用的js方法
1.对日期和时间进行处理 /* 1. 时间处理 使用方法例如: new Date().format('yyyy-MM-dd hh:mm:ss:S') */ Date.prototype.format = function (fmt) { // author: meizz let o = { 'M+': this.getMo...原创 2019-05-05 10:42:04 · 189 阅读 · 0 评论 -
引用类型---Array
一.Array类型 除了Object类型之外,Array类型是ECMAScript最常用的类型。而且ECMAScript中的Array类型和其他语言中的数组有着很大的区别。虽然数组都是有序排列,但ECMAScript中的数组每个元素可以保存任何类型。ECMAScript中数组的大小也是可以调整的。 创建Array类型有两种方式:第一种是new运算符,第二种是字面量。1.使用new关键原创 2017-08-11 14:04:40 · 281 阅读 · 0 评论 -
执行环境及作用域以及内存问题
一.环境:定义了变量或者函数有权访问其他数据,决定了他们的行为。每一个执行环境都有一个与之相关联的变量对象(例如全局的就是window),环境中定义的变量和函数都保存在这个对象中。原创 2017-07-28 16:15:58 · 206 阅读 · 0 评论 -
基本类型和引用类型的值
一.基本数据类型基本数据类型:undefined null number string boolean这些类型在内存中分别占有固定大小的空间,他们的值保存在栈空间,我们通过按值来访问的。二.引用数据类型object引用类型的值,则必须在堆内存中为这个值分配空间。由于这种值的大小不固定,因此不能把它们保存到栈内存中。但内存地址大小是固定的,因此可以将内存地址保存在栈内存中。这样,当查询引用类型的变原创 2017-07-28 15:12:57 · 196 阅读 · 0 评论 -
引用类型---函数
在ECMAScript中,Function(函数)类型实际上是对象。每个函数都是Function类型的实例,而且都与其他引用类型一样具有属性和方法。由于函数是对象,因此函数名实际上也是一个指向函数对象的指针。一.函数的声明方式1.普通的函数声明function sum(num1,num2){ return num1+num2; }2.使用变量初始化函数var sum = f原创 2017-08-11 14:38:35 · 882 阅读 · 0 评论 -
引用类型---单体内置对象
内置对象: 有ECMAScript实现提供的,不依赖 宿主环境的对象,在代码执行前就已经存在的。 例如:String,Array,Object 以及ES5定义的Global和Math一.GlobalGlobal(全局对象),事实上没有全局变量或全局函数,所有在全局作用域下定义的属性和函数都是Global对象的属性。1.URI编码方法 为何对URI进行编码?原创 2017-08-11 14:50:02 · 214 阅读 · 0 评论 -
引用类型---基本包装类型
为了便于操作基本类型值,ECMAScript提供了3个特殊的引用类型:Boolean、Number和String。这些类型与其他引用类型相似,但同时也具有与各自的基本类型相应的特殊行为。实际上,每当读取一个基本类型值的时候,后台就会创建一个对应的基本包装类型的对象,从而能够调用一些方法来操作这些数据。一.基本包装类型概述 var box = 'abcdefg';原创 2017-08-11 14:44:39 · 260 阅读 · 0 评论 -
引用类型---正则表达式
假设用户需要在HTML表单中填写姓名、地址、出生日期等,那么在将表单提交到服务器进一步处理前,JavaScript程序会检查表单以确认用户确实输入了信息并且这些信息是符合要求的一、什么是正则表达式正则表达式(regular expression)是一个描述字符模式的对象。ECMAScript的RegExp类表示正则表达式,而String和RegExp都定义了使用正则表达式进行强大的模式匹配和文本检原创 2017-08-11 14:30:23 · 783 阅读 · 0 评论 -
引用类型---Date
时间与日期一.Date类型 ECMAScript中的Date类型是在早期Java中java.util.Date类基础上构建的。为此,Date类型使用UTC (Coordinated Universal Time,国际协调时间[又称世界统一时间]) 1970年1月1日午夜(零时)开始经过的毫秒来保存日期。在使用这种数据存储格式的条件下,Date类型保存的日期能够精确到1970年1月1日之前或之后原创 2017-08-11 14:16:26 · 363 阅读 · 0 评论 -
引用类型----Object
一.对象 什么是对象,其实就是一种类型,即引用类型。而对象的值就是引用类型的实例。在ECMAScript中引用类型是一种数据结构,用于将数据和功能组织在一起。它也常被称做为类,但ECMAScript中却没有这种东西。虽然ECMAScript是一门面向对象的语言,却不具备传统面向对象语言所支持的类和接口等基本结构。引用类型的值(对象)是引用类型的一个实例。var person = new O原创 2017-08-11 13:57:59 · 350 阅读 · 0 评论 -
浏览器对象模型---BOM
一.windowBOM的核心对象是window,表示浏览器的一个实例。 在浏览器中,window有两种角色 1.js访问浏览器窗口的一个接口 2.ECMAScript固定的Global对象1.全局作用域在全局中定义的变量和函数都是window的属性和方法。 var age = 2; function say(){ al原创 2017-08-16 15:04:45 · 221 阅读 · 0 评论 -
函数表达式---私有变量
私有变量JavaScript没有私有属性的概念;所有的对象属性都是公有的。不过,却有一个私有变量的概念。任何在函数中定义的变量,都可以认为是私有变量,因为不能在函数的外部访问这些变量。 function box() { var age = 100; //私有变量,外部无法访问 }1.利用闭包创建访问私有变量的方法而通过原创 2017-08-16 14:46:11 · 331 阅读 · 0 评论 -
函数表达式---模仿块级作用域
1.js没有快级作用域的概念 function a(){ for(var i = 0;i <10;i++){ } console.log(i)//10 } a()//10;c或者java中i只会在for循环中定义,for循环后就会被销毁,而js并不会,他会在for后任然可以被访问。2.用于块级作用域(通常称为私有作用域)语法:(f原创 2017-08-16 14:36:27 · 261 阅读 · 0 评论 -
面向对象的编程---创建对象
一.理解对象 面向对象的语言有一个标志,那就是它们都有类的概念,通过类可以创建多个含有相同属性和方法的对象。ECMAScript中没有类的概念,所以它的对象和基于类的语言中的对象有所不同。 ECMAScript中对于对象的定义:'无序属性的集合,其属性可以包含基本值,对象或函数'。严格来说,对象是一组没有特定顺序的值。对象的每个属性和方法都有一个名字,每个名字映射的就是一个值。二.创原创 2017-08-11 15:24:03 · 306 阅读 · 0 评论 -
面向对象编程---继承
继承是面向对象中一个比较核心的概念。其他正统面向对象语言都会用两种方式实现继承:一个是接口实现,一个是继承。而ECMAScript只支持继承,不支持接口实现,而实现继承的方式依靠原型链完成。继承:主要通过原型链实现1.原型链 基本思想是利用原型让一个引用类型继承另一个引用类型的属性和方法。 简单回顾一下构造函数,原型和实例的关系: 每个构造函数都有一个原型对象,原型原创 2017-08-11 16:20:55 · 288 阅读 · 0 评论 -
JavaScript的基本概念----函数
函数是定义一次但却可以调用或执行任意多次的一段JS代码。函数有时会有参数,即函数被调用时指定了值的局部变量。函数常常使用这些参数来计算一个返回值,这个值也成为函数调用表达式的值原创 2017-07-28 14:53:54 · 258 阅读 · 0 评论 -
JavaScript的基本概念----语句
关于js语句的基本用法原创 2017-07-28 14:43:54 · 200 阅读 · 0 评论 -
JavaScript的基本概念----操作符
一. 一元操作符,关系操作符,相等操作符,三目运算原创 2017-07-28 14:40:58 · 221 阅读 · 0 评论 -
JavaScript的基本概念----基本语法与变量
js基本语法,关键字和保留字,以及变量原创 2017-07-28 14:26:54 · 252 阅读 · 0 评论 -
在HTML中使用JavaScript
JavaScript 用法在HTML中必须将js代码放在标签中标签可以放置在 HTML 页面的 和 部分中原创 2017-07-28 13:58:34 · 278 阅读 · 0 评论