js整理
文章平均质量分 56
yanner_
这个作者很懒,什么都没留下…
展开
-
常见JS中字符串的属性和方法
属性: length:返回字符串的长度var str='hello world';alert(str.length); // 11方法: charAt():返回指定索引位置的字符var str='hello world';alert(str.charAt(4)); // ocharCodeAt():返回指定索引位置字符的Unicode编码var str='a';a...原创 2018-06-21 11:22:42 · 407 阅读 · 0 评论 -
js中对this关键字的理解
this是Javascript语言的一个关键字。它代表函数运行时,自动生成的一个内部对象,只能在函数内部使用。 比如, 理解this指代什么的关键点在与: 看这个this指的是局部对象还是全局对象(global)默认在”script”标签中写的成员变量和方法都属于全局对象(global)所有,global对象其实是不存在的,当js在浏览器上应用的时候,window对象是浏览器引擎对global...原创 2018-08-21 16:54:31 · 185 阅读 · 0 评论 -
JS原型链图解
一、原型 二、原型链原创 2018-08-21 16:18:35 · 140 阅读 · 0 评论 -
cookie和session机制
会话(Session)跟踪是Web程序中常用的技术,用来跟踪用户的整个会话。常用的会话跟踪技术是Cookie与Session。Cookie通过在客户端记录信息确定用户身份,Session通过在服务器端记录信息确定用户身份。一。Cookie机制 在程序中,会话跟踪是很重要的事情。理论上,一个用户的所有请求操作都应该属于同一个会话,而另一个用户的所有请求操作则应该属于另一个会话,二者不能混淆。...原创 2018-08-31 11:29:48 · 179 阅读 · 0 评论 -
jquery问题
一.jQuery根据name取input值问题 $(“input[name=inputName]”).val() 取input值得时候发现取值有问题:总是取第一次输入的值,如果在同一个页面不发生表单提交,然后将input的值存储在页面,再次进行输入并取值的时候,取到的是第一次输入的值。解决办法:根据ID或class取值.二.jQuery里$(this)和this的区别在哪? $(this...原创 2018-08-21 11:22:09 · 202 阅读 · 0 评论 -
如何做好SEO
1.什么是SEO? 搜索引擎优化(Search Engine Optimization),简称SEO。是按照搜索引擎给出的优化建议,以增强网站核心价值为目标,从网站结构、内容建设方案、用户互动传播等角度进行合理规划,以改善网站在搜索引擎中的表现,吸引更多搜索引擎用户访问网站。SEO与搜索引擎,互相促进,互利互助。搜索引擎蜘蛛是搜索引擎工程师开发出的模拟蜘蛛在蜘蛛网爬行的一个程序,因为类似蜘蛛...原创 2018-08-31 10:05:34 · 349 阅读 · 0 评论 -
缓存机制解析
1.什么是缓存? 缓存就相当于是对资源的一种副本实现,不管是在客户端还是在服务端存储着,用相同的URL进行请求,直接从副本中请求资源而不再访问源服务器。为什么要使用缓存? 提高访问速度:缓存相对服务端离用户更近,所以在请求过程中从缓存中取内容比在源服务器上取的内容用的时间更少,加快了用户体验。 降低网络传输:副本被重复使用,大大降低了用户的带宽使用,其实也是一种变相的省钱(如果流量要付费...原创 2018-08-31 09:35:42 · 287 阅读 · 0 评论 -
session,cookie,sessionStorage,localStorage的区别及应用场景
浏览器的缓存机制提供了可以将用户数据存储在客户端上的方式,可以利用cookie,session等跟服务端进行数据交互。 一、cookie和session cookie和session都是用来跟踪浏览器用户身份的会话方式。 cookie的内容主要包括:名字、值、过期时间、路径和域。路径与域一起构成cookie的作用范围。 session机制是一种服务器端的机制,服务器使用一种类似于散列表的...原创 2018-08-21 10:28:48 · 336 阅读 · 0 评论 -
创建对象、方法
1.根据包名,在指定空间中创建对象: 输入:namespace({a: {test: 1, b: 2}}, 'a.b.c.d') 输出:{a: {test: 1, b: {c: {d: {}}}}}function namespace(oNamespace, sPackage) { var arr = sPackage.split('.'); var res = oName...原创 2018-08-24 14:50:33 · 119 阅读 · 0 评论 -
new操作符具体干了什么呢?
var Func=function(){};var func=new Func ();new共经过了四个阶段: 1、创建一个空对象varobj=new Object();2、设置原型链obj.__proto__= Func.prototype;3、让Func中的this指向obj,并执行Func的函数体。var result =Func.call(o...原创 2018-08-21 17:11:38 · 118 阅读 · 0 评论 -
变量声明提升和函数声明提升
变量声明提升 1、变量定义 可以使用var定义变量,变量如果没有赋值,那变量的初始值为undefined。2、变量作用域 变量作用域指变量起作用的范围。变量分为全局变量和局部变量。全局变量在全局都拥有定义;而局部变量只能在函数内有效。 在函数体内,同名的局部变量或者参数的优先级会高于全局变量。也就是说,如果函数内存在和全局变量同名的局部变量或者参数,那么全局变量将会被局部变量覆盖。 ...原创 2018-08-21 17:44:01 · 95 阅读 · 0 评论 -
进程和线程区别
单核CPU执行多任务:操作系统轮流让各个任务交替执行,任务1执行0.01秒,切换到任务2,任务2执行0.01秒,再切换到任务3,执行0.01秒……这样反复执行下去。表面上看,每个任务都是交替执行的,但是,由于CPU的执行速度实在是太快了,我们感觉就像所有任务都在同时执行一样。多核CPU并行执行多任务:进程:对于操作系统来说,一个任务就是一个进程(Process),比如打开一个浏览器就是启动...原创 2018-09-05 16:51:07 · 182 阅读 · 0 评论 -
二叉树问题
1.创建二叉树 function BinaryTree(data, leftChild, rightChild) { this.data = data || null; // 左右孩子结点 this.leftChild = leftChild || null; this.rightChild = rightChild || n...原创 2018-09-02 22:43:10 · 108 阅读 · 0 评论 -
前端性能优化
一。网络加载 1.减少HTTP请求次数 建议尽可能的根据需要去合并静态资源图片、JavaScript代码和CSS文件,减少页面请求数,这样可以缩短页面首次访问的等待时间,另外也要尽量的避免重复资源,防止增加多余的请求。2.避免页面中空的href和src 当link标签的href属性为空,或者script、img、iframe标签的src属性为空的时候,浏览器在渲染的过程中还是会把href...原创 2018-08-30 15:58:54 · 117 阅读 · 0 评论 -
浏览器兼容性问题整理
市场上浏览器种类很多,不同浏览器的内核也不尽相同,所以各个浏览器对网页的解析存在一定的差异。 浏览器内核主要分为两种,一是渲染引擎,另一个是js 引擎,内核更加倾向于说渲染引擎。常见的浏览器内核:Trident、Gecko、Blink、Webkit Chrome浏览器:Webkit内核,现在是Blink内核 Safari浏览器:Webkit内核 IE浏览器:Trident内核,也成为I...原创 2018-08-30 15:25:59 · 146 阅读 · 0 评论 -
substring,substr, slice的用法和区别
substring( ),substr( ), slice(),请说下3种解析字符串的不同之处,以及适用场合?答:substring( )返回一个字符串,该字符串由 start 和 end 参数指定的两点之间的字符组成。如果未指定 end 参数,则子字符串的结尾就是该字符串的结尾。如果 start 的值等于 end 的值,则该方法会返回一个空字符串。如果 start 的值大于 end 的值,则...原创 2018-08-21 22:48:56 · 116 阅读 · 0 评论 -
数组
1.输入n,输出n行对称的数组成金字塔:function output(n) { for(let i=0;i<=n;i++){ let k=0; var a=[]; for(let j=1;j<=2*i-1;j++){ if(j<=i){ a.push(++k); ...原创 2018-08-21 22:36:58 · 101 阅读 · 0 评论 -
正则用法
正则基本用法 str:要替换的字符串 \s : 表示 space ,空格 *: 一个或多个 ^: 开始,^\s,以空格开始 $: 结束,\s$,以空格结束 |:或者 /g:global, 全局 replace() 替换 \w:与任何单词、任何字符匹配 +:匹配一次或多次 *:匹配0个或多个 ?:0个或1个 reg.test(str):测试字符串中是否由匹配reg项 st...原创 2018-08-24 22:38:02 · 108 阅读 · 0 评论 -
从输入URL到页面展示的详细过程
1、输入网址 2、DNS解析 3、建立tcp连接 4、客户端发送HTPP请求 5、服务器处理请求 6、服务器响应请求 7、浏览器展示HTML 8、浏览器发送请求获取其他在HTML中的资源。1、输入地址 当我们开始在浏览器中输入网址的时候,浏览器其实就已经在智能的匹配可能得 url 了,他会从历史记录,书签等地方,找到已经输入的字符串可能对应的 url,然后给出智能提示,让你可...原创 2018-08-21 19:18:18 · 443 阅读 · 0 评论 -
获取url中的参数
获取 url 中的参数 1. 指定参数名称,返回该参数的值 或者 空字符串 2. 不指定参数名称,返回全部的参数对象 或者 {} 3. 如果存在多个同名参数,则返回数组测试: 输入:http://www.nowcoder.com?key=1&key=2&key=3&test=4#hehe 输出:[1, 2, 3]function getUrlParam(s...原创 2018-08-23 16:56:45 · 227 阅读 · 0 评论 -
正则表达式-剑指
1.给定字符串 str,检查其是否包含数字,包含返回 true,否则返回 falsefunction containsNumber(str) { return /\d/.test(str);}2.给定字符串 str,检查其是否包含连续重复的字母(a-zA-Z),包含返回 true,否则返回 falsefunction containsRepeatingLetter(s...原创 2018-08-23 15:53:07 · 198 阅读 · 0 评论 -
计时、流程控制
1.实现一个打点计时器,要求 1、从 start 到 end(包含 start 和 end),每隔 100 毫秒 console.log 一个数字,每次数字增幅为 1 2、返回的对象中需要包含一个 cancel 方法,用于停止定时操作 3、第一个数需要立即输出//setInterval() 方法function count(start, end) { //立即输出第一个值 co...原创 2018-08-22 20:42:28 · 131 阅读 · 0 评论 -
数组问题
1.找出元素 item 在给定数组 arr 中的位置function indexOf(arr, item) { if (Array.prototype.indexOf){ //判断原型中是否支持该方法 return arr.indexOf(item); } else { for (var i = 0; i < arr.length; i++){ ...原创 2018-08-22 17:40:06 · 596 阅读 · 0 评论 -
JS 中的事件绑定、事件监听、事件委托是什么?
1、事件绑定 要想让 JavaScript 对用户的操作作出响应,首先要对 DOM 元素绑定事件处理函数。所谓事件处理函数,就是处理用户操作的函数,不同的操作对应不同的名称。 有三种常用的绑定事件的方法: (1)在DOM中直接绑定事件 我们可以在DOM元素上绑定onclick、onmouseover、onmouseout、onmousedown、onmouseup、ondblclick、o...原创 2018-08-22 12:09:59 · 186 阅读 · 0 评论 -
js如何获取非行间样式
我们都知道,js不能直接获取样式表中的样式,例如width,left,只能直接获取行内样式,但是现在主流不建议写行内样式,因此我们封装一个可以直接获取非行间样式的函数<span style="font-size:18px;"> function getStyle(obj,name){ if(obj.currentStyle){ return obj....原创 2018-08-22 11:35:44 · 218 阅读 · 0 评论 -
typeof返回哪些数据类型
typeof的返回值共有六种: 1.返回数据类型 undefined string boolean number symbol(ES6) Object Function注意:没有数组array,若为数组则返回object。js的强制类型转换 js提供了parseInt()和parseFloat()两个转换函数。前者把值转换成整数,后者把值转换成...原创 2018-08-22 11:29:12 · 871 阅读 · 0 评论 -
JSON与XML的区别比较
XML定义 扩展标记语言 (Extensible Markup Language, XML) ,用于标记电子文件使其具有结构性的标记语言,可以用来标记数据、定义数据类型,是一种允许用户对自己的标记语言进行定义的源语言。JSON定义 JSON(JavaScript Object Notation)一种轻量级的数据交换格式,具有良好的可读和便于快速编写的特性。可在不同平台之间进行数据交换。JS...原创 2018-08-22 10:54:02 · 91 阅读 · 0 评论 -
Web应用从服务器主动推送数据到客户端有哪些方式?
通常情况下,打开网页或app去查询或者刷新时,客户端向服务器发出请求然后返回数据,客户端与服务端对应的模式是: 客户端请求–服务端响应, 而在有些情况下,服务端会主动推送一些信息到客户端,例如:新闻的订阅,天气的提醒等等,那么在这样的模式下,会有些问题值得思考: 1.应用服务器如何确定每一个应用所在的设备2.服务端把消息推到哪,客户端又不像服务器有一个固定的地址服务端主动推送到客户端是怎...原创 2018-08-22 10:15:03 · 410 阅读 · 0 评论 -
闭包问题
1.变量作用域 javascript语言的特别之处就在于:函数内部可以直接读取全局变量,但是在函数外部无法读取函数内部的局部变量。 注意点:在函数内部声明变量的时候,一定要使用var命令。如果不用的话,你实际上声明的是一个全局变量!2.如何从外部读取函数内部的局部变量? 出于种种原因,我们有时候需要获取到函数内部的局部变量。但是,上面已经说过了,正常情况下,这是办不到的!只有通过变通的方...原创 2018-07-16 21:44:25 · 173 阅读 · 0 评论 -
函数
1.实现函数 functionFunction,调用之后满足如下条件: 1、返回值为一个函数 f 2、调用返回的函数 f,返回值为按照调用顺序的参数拼接,拼接字符为英文逗号加一个空格,即 ‘, ’ 3、所有函数的参数数量为 1,且均为 String 类型function functionFunction(str) { var f = function(s){ ret...原创 2018-08-22 22:15:15 · 361 阅读 · 0 评论 -
number
1.获取数字 num 二进制形式第 bit 位的值。注意: 1、bit 从 1 开始 2、返回 0 或 1 3、举例:2 的二进制为 10,第 1 位为 0,第 2 位为 1function valueAtBit(num, bit) { var s = num.toString(2); return s[s.length - bit]; }function val...原创 2018-08-23 09:37:45 · 131 阅读 · 0 评论 -
移动端适配问题
1.自动适应屏幕宽度viewport 在html中添加meta标签:网页的宽度默认等于屏幕的宽度 <meta name="viewport" content="width=device-width, initial-scale=1,user-scalable=0"> 扩展viewport属性: 1>width 设置viewport的宽度,可以是数字,或者使用字符串...原创 2018-08-30 17:26:36 · 280 阅读 · 0 评论 -
性能优化-异步加载js文件
为什么要异步加载:同步加载会阻塞浏览器的后续处理,即只有当当前文件加载完毕之后才能进行下一步的文件加载(如图像)、渲染、代码执行。如果js中有输出document内容、修改DOM、重定向等行为,就会造成页面阻塞。什么叫异步加载: 异步加载不会阻塞浏览器的后续操作,即在加载执行js的同时,并行加载其他文件渲染页面。方法一:async属性 async属性规定js文件一旦可用就会执行,脚本相对...原创 2018-08-23 12:12:05 · 129 阅读 · 0 评论 -
实现一个函数clone,可以对javascript中的5种主要的数据类型进行值复制。
数据类型:(包括Number、String、Object、Array、Boolean) 关键点在于:Object分为对象或数组 判断是否是数组:function isArray(obj) { return Object.prototype.toString.call(obj) === '[object Array]'; }...原创 2018-08-23 11:55:17 · 149 阅读 · 0 评论 -
js闭包中this的指向问题及三种解决方法
下面是一个问题,对象方法中定义的子函数,子函数执行时this指向哪里? 三个问题: (1)以下代码中打印的this是个什么对象? (2)这段代码能否实现使myNumber.value加1的功能? (3)在不放弃helper函数的前提下,有哪些修改方法可以实现正确的功能?var myNumber = { value: 1, add: funct...原创 2018-08-23 11:08:28 · 172 阅读 · 0 评论 -
判断是pc端还是移动端
Navigator对象:Navigator 对象包含有关浏览器的信息,下面的userAgent 属性是一个只读的字符串,声明了浏览器用于 HTTP 请求的用户代理头的值。所以我们可以通过判断navigator.useragent里面是否有某些值来判断方法一:js代码<script type="text/javascript">var mobileAgent = new Arr...原创 2018-08-23 10:47:12 · 249 阅读 · 0 评论 -
重绘和回流的定义
1.渲染树(render tree) 1.浏览器把获取到的HTML代码解析成一棵DOM树,HTML中的每个标签(tag)都是DOM树中的一个节点,根节点就是我们常用的document对象。DOM树里包含了HTML所有标签,包括display:none隐藏,还有用JS动态添加的元素等;2.浏览器把所有样式(用户定义的css和用户代理)解析成样式结构体,在解析过程中会去掉浏览器不能识别的样式,比...原创 2018-08-23 10:34:19 · 212 阅读 · 0 评论 -
javascript中自执行(自调用)函数
自执行函数定义: 自执行函数或是自调用函数 声明完了,马上进行调用,只能使用一次,,有两种写法.写法一:(函数)(实参)<script> (function (n1,n2){ console.log("这是匿名函数的自执行的第一种写法,结果为:"+(n1+n2)) })(10,100)//110 (function start(n1,...原创 2018-08-23 10:01:58 · 266 阅读 · 0 评论 -
JavaScript中的本地对象、内置对象和宿主对象
一、本地对象 ECMA-262把本地对象(native object)定义为:独立于宿主环境的ECMAScript实现的对象。 这里简单说一下JavaScript的应用环境,JavaScript的应用环境由宿主环境和运行期环境构成。宿主环境主要是指外壳程序(shell)和Web浏览器等,运行期环境由JavaScript引擎内建的。现在来看一下本地对象有哪些: Ob...原创 2018-08-23 09:41:59 · 187 阅读 · 0 评论 -
MVM、MVP、MVVM架构联系与区别
一.MVC View (视图层)。它是提供给用户的操作界面,是程序的外壳。Model(数据层),也就是程序需要操作的数据或信息,是整个系统的核心部分。Controller(控制层/逻辑层),它负责根据用户从”视图层”输入的指令,选取”数据层”中的数据,然后对其进行相应的操作,产生最终结果。当Model变更了以后,会通过观察者模式(Observer Pattern)通知View;V...原创 2018-09-06 16:45:15 · 2906 阅读 · 1 评论