- 博客(32)
- 收藏
- 关注
原创 js类型判断
判断 Target 的类型,单单用 typeof 并无法完全满足,这其实并不是 bug,本质原因是 JS 的万物皆对象的理论。因此要真正完美判断时,我们需要区分对待:基本类型(null): 使用 String(null) 基本类型(string / number / boolean / undefined) + function: 直接使用 typeof即可 其余引用类型(Array / Date / RegExp Error): 调用toString后根据[object XXX]进行判断完善的判
2020-06-16 17:14:19 222
转载 Runtime Only VS Runtime + Compiler
vue Runtime Only 与 Runtime + Compiler两种版本的区分在用vue-cli脚手架生成vue项目时,会让我们选择 runtime only和runtime+compiler两种版本,这两种版本有什么区别呢?Runtime Only我们在使用 Runtime Only 版本的 Vue.js 的时候,通常需要借助如 webpack 的 vue-loader 工具...
2019-08-03 16:32:02 400
原创 css绘制三角形及扇形
css绘制三角形。1.正三角形(方向在正方向上)eg:箭头向上#triangle-up { width: 0; height: 0; border-left: 50px solid transparent; border-right: 50px solid transparent; border-bottom: 100px solid red;...
2019-07-10 16:50:36 546
原创 css-----典型webapp页面实现
主要是针对顶部与底部固定,中间内容部分自适应滚动的布局方法,应该还有很多,我这里介绍两种:1.顶部与底部固定定位html, body { padding: 0; margin: 0; width: 100%; height: 100% } .box { display: flex; fl...
2018-12-04 14:20:18 565
原创 面试题
1.var str = ‘asdasdasdafadadw’判断‘a'在str中出现的次数判断str中出现次数最多的字符,并给出次数2.把数字按照千分位划分3.把多维数组拍平;ex:var arr = [1,[1,2],[1,[1,2]],3] 输出为一维数组。4.函数柯里化5.手写弹性布局6.判断引用类型变量是数组还是对象7.数组排序的方法,冒泡排序的实现原理...
2018-07-24 22:32:06 174
转载 Promise 对象
Promise.prototype.catch()Promise.prototype.catch方法是.then(null, rejection)的别名,用于指定发生错误时的回调函数。Promise 的含义Promise 是异步编程的一种解决方案,比传统的解决方案——回调函数和事件——更合理和更强大。它由社区最早提出和实现,ES6 将其写进了语言标准,统一了用法,原生提供了...
2018-07-18 13:49:08 231
转载 set,map,weakset,weakMap
SETES6 提供了新的数据结构 Set。它类似于数组,但是成员的值都是唯一的,没有重复的值。Set 本身是一个构造函数,用来生成 Set 数据结构。const s = new Set();[2, 3, 5, 4, 5, 2, 2].forEach(x => s.add(x));for (let i of s) { console.log(i);}// 2 3 5 4上面代码...
2018-07-12 17:49:55 187
转载 es6数组
扩展运算符含义扩展运算符(spread)是三个点(...)。它好比 rest 参数的逆运算,将一个数组转为用逗号分隔的参数序列。+扩展运算符的应用 § ⇧(1)复制数组数组是复合的数据类型,直接复制的话,只是复制了指向底层数据结构的指针,而不是克隆一个全新的数组。const a1 = [1, 2];const a2 = a1;a2[0] = 2;a1 // [2, 2]上面代码中,a2并...
2018-07-11 15:46:42 314
转载 es6--杂杂杂*(函数)
函数扩展函数参数中 (...parameter) ES6 引入 rest 参数(形式为...变量名),用于获取函数的多余参数,这样就不需要使用arguments对象了。rest 参数搭配的变量是一个数组,该变量将多余的参数放入数组中。与arguments的区别:arguments对象不是数组,而是一个类似数组的对象。所以为了使用数组的方法,必须使用Array.prototype.slice.ca...
2018-07-08 19:22:14 140
转载 es6之变量解构赋值
一.圆括号的问题解构赋值虽然很方便,但是解析起来并不容易。对于编译器来说,一个式子到底是模式,还是表达式,没有办法从一开始就知道,必须解析到(或解析不到)等号才能知道。由此带来的问题是,如果模式中出现圆括号怎么处理。ES6 的规则是,只要有可能导致解构的歧义,就不得使用圆括号。但是,这条规则实际上不那么容易辨别,处理起来相当麻烦。因此,建议只要有可能,就不要在模式中放置圆括号。不适用园括号的情况以...
2018-06-26 15:11:21 200
原创 面试:浏览器兼容
题目点评这个问题是非常抽象的,越是抽象的问题越能表现出我们的表达能力,而面试官就喜欢根据你的回答来追问,不断地打断你的思路,这个时候不要慌,一定要坚信自己。回答思路我们在开发的时候会明确项目要兼容哪些浏览器的最低版本,我之前的项目要求兼容IE8.0以上的版本,Chrome 48以上,FireFox 44以上。有了这些最基本的要求,在开发中就是要考虑到CSS样式和JavaScript的在这些浏览器的...
2018-06-03 18:42:12 532
原创 html--meta标签
meta标签的定义:<meta> 元素可提供有关页面的元信息(meta-information),比如针对搜索引擎和更新频度的描述和关键词。<meta> 标签位于文档的头部,不包含任何内容。<meta> 标签的属性定义了与文档相关联的名称/值对。HTML 与 XHTML 之间的差异在 HTML 中,<meta> 标签没有结束标签。在 XHTML 中,...
2018-05-24 15:23:21 202
原创 浏览器对象模型(BOM)-(1)
浏览器对象模型(简称BOM),是独立于HTML界面的于浏览器相关的一些信息对象的模型。BOM主要由一系列的对象属性和方法组成。BOM也叫做浏览器对象模型,它提供了很多对象,用于访问浏览器的功能;这些功能与任何网页内容无关;BOM缺少规范,每个浏览器提供商都按照自己的想法去扩展它,那么浏览器共有对象就成了事实的标准;一 window对象// BOM的核心对象是window,它表示浏览器的一个实例;...
2018-05-20 17:06:37 288
原创 浏览器对象模型(BOM)-(3)
Navigator对象Navigator包含了浏览器相关的一些信息例如浏览器的版本信息等等userAgent:返回由客户机发送服务器的user-agent 头部的值,可以用于判断浏览器的版本function version(){ // 获取浏览器的User-Agent字符串 var userAgent = navigator.userAgent; // 浏览器厂商或者版...
2018-05-20 17:06:26 136
原创 浏览器对象模型(BOM)-(2)
location对象location是BOM对象之一,它提供了与当前窗口中加载的文档有关的信息,还提供了一些导航功能;事实上,location对象是window对象的属性,也是document对象的属性;alert(location); // 获取当前的URL(1).location对象的属性属性 描述的URL内容hash 如果该部分存在,表示锚点部分;host 主机名:端口号;hostname ...
2018-05-20 17:03:33 126
原创 js中函数防抖和节流
在js中,DOM操作(onresize, onscroll….等等操作)是最消耗性能的,但是一些场景中同一事件会多次触发,为了减少操作,从而有了节流的概念。函数节流的思想很简单:在每次出发的时候我们就开一个定时器,将DOM操作延迟,然后在下一次事件触发的时候,我们把这个定时器关掉,我们开关定时器,一直到一定的时机在触发事件。javaScript 高级程序设计中的方法function throttl...
2018-05-20 16:28:18 1503
原创 js变量提升
在了解变量提升之前,应该先了解一下js到底是一种什么类型的语言,他的运行机制又是怎样的.javascript 是一种弱类型、动态的、解释型的脚本语言。弱类型:类型检查不严格,偏向于容忍隐式类型转换。 强类型:类型检查严格,偏向于不容忍隐式类型转换。 动态类型:运行的时候执行类型检查。 静态类型:编译的时候就知道每个变量的类型。 解释型:程序不需要编译,程序在运行的时候才翻译成机器语言,每执行一次都...
2018-05-20 16:16:21 172
原创 AngularJS iframe跨域打开内容时报差错的解决办法
最近在angular中发现了一个 跨域的问题,在angular框架中使用 iframe标签通过ng-src打开不同域名下的资源会发生跨域情况解决办法即:通过$sceDelegateProvider绑定白名单,代码如下<body> <div ng-app='myapp' ng-controller='myCtrl'> <iframe ng-src="{{url}}...
2018-05-18 15:05:19 1268
原创 npm指令
先说明一下 -g --save -save-dve的意思-save和save-dev可以省掉你手动修改package.json文件的步骤。-g就是全局安装 --save 自动把模块和版本号添加到dependencies部分-save-dve 自动把模块和版本号添加到devdependencies部分devdependencies与dependencies的区别:devDependencies 里...
2018-05-06 20:36:47 260
原创 前端性能优化
1. 外部css资源和javascript的引入规范把CSS资源引用放到HTML文件顶部,这样浏览器可以优先下载CSS并尽快完成页面渲染。JavaScript文件引用放到HTML文件底部可以防止JavaScript的加载和解析执行对页面渲染造成阻塞。由于JavaScript资源默认是解析阻塞的,除非被标记为异步或者通过其他的方式异步加载,否则会阻塞HTML DOM解析和CSS渲染过程。2. 不要在...
2018-05-06 20:19:03 110
原创 React项目构建
目前React项目挺火的。自己学习了一下,总结了两种react项目构建的方法.这两种方法的前提是你安装了node.js。第一种是通过create-react-app,这也是官网教程中的方法。它一个无需配置的、用于快速构建开发环境的脚手架工具。① 首先在全局安装create-react-appnpm install -g create-react-app # Windownpm install...
2018-05-06 19:13:00 808
原创 戏谈javaScript中的几种神奇现象(漏洞)
javaScript的诞生就是个非常仓促的过程,但是却在诞生短短一年半就发布了国际标准,以至于有缺陷没来得及修复就已经被置顶为国际标准,反观c语言,是在诞生20多年才统一了国际标准.但是javaScriptr虽然漏洞很多,但是却随着web的迅猛发展,一路高歌猛进.浅谈JavaScript中的神奇现象(漏洞)1.null 和 undfined 先来说一下神奇的null和undfined,null属于...
2018-04-28 17:49:33 635
原创 数据结构基础-数据类型
最近看到es6中set与map,然后去了解了一下为什么es6中要新增这么两种数据结构,了解过之后我看的很懵逼,就想着从0开始整理一下几种常见的数据类型及其特点.首先我们来了解下什么是数据结构? 数据结构是计算机存储、组织数据的方式。数据结构是指相互之间存在一种或多种特定关系的数据元素的集合。通常情况下,精心选择的数据结构可以带来更高的运行或者存储效率。数据结构往往同高效的检索...
2018-04-28 12:37:57 1191
原创 javaScript中的顶层对象小结
顶层对象,在浏览器中指的是window,在node环境中指的是global对象.在ES5环境中,通过var声明的变量能够通过window对象获取到,variable = '1';console.log(window.variable);//1window.variable = '2';console.log(variable);//2证明顶层对象的属性赋值与全局变量的赋值,是同一件事。这种特...
2018-04-25 16:46:51 3145
原创 js事件模型
js中的事件模型大致可以分为三种:原始事件模型(DOM0),DOM2事件模型,IE事件模型;一.原始事件模型的特点:事件类型上面有ON(onclick)没有事件的传播(事件一旦发生就立刻调用事件句柄)一个DOM对象只能注册一个类型的事件,如果注册了两个,则会发生覆盖,只执行后一个事件;原始事件模型两种写法1.将JS代码作为HTML的性质(也就是直接在标签中将HTML元素的性质设置为一段代码)<...
2018-04-22 20:06:22 541
原创 前端安全(二)之XSS
1.什么是xss? xss既跨站脚本攻击(Cross Site Scripting), 是发生在目标用户的浏览器层面上的,当渲染DOM树的过程成发生了不在预期内执行的JS代码时,就发生了XSS攻击。跨站脚本的重点不在‘跨站’上,而在于‘脚本’上。大多数XSS攻击的主要方式是嵌入一段远程或者第三方域上的JS代码。实际上是在目标网站的作用域下执行了这段js代码2.xss的攻击类型 1.非持久型XSS攻...
2018-04-22 18:55:00 711
翻译 前端安全(1)之HTTP劫持
什么是HTTP劫持呢,大多数情况是运营商HTTP劫持,当我们使用HTTP请求请求一个网站页面的时候,网络运营商会在正常的数据流中插入精心设计的网络数据报文,让客户端(通常是浏览器)展示“错误”的数据,通常是一些弹窗,宣传性广告或者直接显示某网站的内容,大家应该都有遇到过。一般常见的http劫持就是运营商为了减少广告代码对网页源码的影响,而用于网页大小相同的iframe,那么就可以通过这个 ifra...
2018-04-21 19:36:54 681
原创 理解javascript中的闭包
1.何为闭包: 闭包简单来说就是函数中的函数,内部的函数能够访问外部函数的变量,当然这么说是不全面的,下面系统的来介绍一下闭包.2.变量作用域: 要了解闭包首先要弄清楚js中的变量作用域,js中的变量分为全局变量和局部变量,函数内部能够直接访问全局变量,反之定义在函数内部的局部变量在函数外部是不能被访问的var n=999; function f1(){ alert(n); ...
2017-09-05 14:49:36 305 2
原创 javaScript中console的几种方法
**在js中console和打断点是初学者常用的调试方法,今天介绍不同console的方法.** 一、四种显示信息的命令<!DOCTYPE html><html><head><title>最常见的4种console命令</title><meta http-equiv="Content-Type" content="text/html; charset=utf-8" /></head><
2017-09-05 11:30:19 2644 1
原创 在网页中以table形式动态输出数据库中数据的方式(1)html与php混写版
$link = mysqli_connect("localhost","root","","tenseven");$query ="SELECT * FROM user"; mysqli_query($link,"set names UTF8"); $result = mysqli_query($link, $query); ?>DOCTYPE ht
2017-06-06 17:37:00 1392
原创 基于php的记录网页访问量的小代码
//统计网站 pv (访问量)//首先判断有没有统计的文件if (is_file("tongji.txt")) {//有//取文件里的值 $a =file_get_contents("tongji.txt");//累加$a++;//累加后的值存进去 file_put_contents("tongji.txt", $a);
2017-06-06 17:30:02 7254
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人