js基础
文章平均质量分 53
牛长犇
享受写东西的过程,记录技术上的成长
展开
-
js基础--数据类型检测的相关知识
欢迎访问我的个人博客:http://www.xiaolongwu.cn前言最近工作有点忙,好几天都没更新技术博客了。周末起床打开有道云笔记,发现自己的博客todolist里躺了一堆只有名字的文件。话不多说,我们开干,加油!干货满满今天,我们一起学习一下js中的数据类型检测相关的知识,也顺便做个总结。1、数据类型介绍我们都知道,在js中分为基本数据类型和复杂数据类型。基本数据类型又...原创 2019-03-11 12:35:13 · 384 阅读 · 0 评论 -
js中的快速排序
欢迎访问我的个人博客 http://xiaolongwu.cn/快速排序代码 function quickSort(arr){ //判断如果数组长度为一,则直接返回 if(arr.length <= 1){ return arr; } //找...原创 2018-02-08 00:52:09 · 449 阅读 · 1 评论 -
js中的setTimeout详解,和关于它的setTimeout(function(){},0)问题
欢迎访问我的个人博客 http://xiaolongwu.cn/先热身看看下面的额代码会打印出什么?for (var i = 0; i &amp;lt; 5; i++) { setTimeout(function () { console.log(i); }, 100); } 上面的结...原创 2018-02-08 00:51:48 · 12652 阅读 · 2 评论 -
如何操作iframe父页面中的元素、方法、变量
欢迎访问我的个人博客 http://xiaolongwu.cn/方法1. 在iframe中查找父页面元素的方法:jQuery的方法:$("#id",window.parent.document)原生的方法:window.parent.document.getElementById("id");//有时候iframe会嵌套好几层,那么嵌套两层时就是:window.par...原创 2018-02-08 00:51:33 · 27523 阅读 · 0 评论 -
javaScript数据类型你都弄明白了吗?绝对干货
欢迎访问我的个人博客 http://xiaolongwu.cn/数据类型的分类JavaScript的数据类型分为两大类,基本数据类型和复杂数据类型。基本数据类型:Null、Undefined、Number,String,Boolean。复杂数据类型:Object。一、Object《JavaScript语言精辟》这本书里面是这么定义的:数组是对象,函数是对象,正则表达式也...原创 2018-02-08 00:50:58 · 2636 阅读 · 3 评论 -
图片上传时实现本地预览功能的原理解析
欢迎访问我的个人博客 http://xiaolongwu.cn/前言最近在项目上加一个图片裁剪上传的功能,用的是cropper插件,注意到选择本地图片后就会有预览效果,这里整理一下这种预览效果的实现原理;实现原理通过input的 type = file属性和window的内置FileReader对象,利用FileReader对象的readAsDataURL方法,把图片数据转成b...原创 2018-02-08 00:49:33 · 4792 阅读 · 1 评论 -
Unexpected token o in JSON at position 1 报错原因
欢迎访问我的个人博客 http://xiaolongwu.cn/写在前面的话这个问题在之前做项目时碰到过一次,当时按照网上的做法,去掉JSON.parse()这一层转换后就没有这个报错了,数据也能正常使用,就没多想,也没深究是什么原因。可是这次又碰到了,所以这次我必须要弄明白原因。先看看它的作用JSON.parse()用于从一个字符串中解析出json对象,如var ...原创 2018-02-08 00:49:03 · 110820 阅读 · 29 评论 -
slice()与splice()的用法和区别你清楚吗?
欢迎访问我的个人博客:http://www.xiaolongwu.cn他们的共性是都可以操作数据,截取一段数组,一、slice(start,end)从start开始截取到end但是不包括end返回值为截取出来的元素的集合原始的数组不会发生变化//例子 var arr1 = [1,23,44,55,66,77,888,"fff"]; var...原创 2018-02-27 14:50:34 · 31759 阅读 · 3 评论 -
阻止事件冒泡,阻止默认事件,event.stopPropagation()和event.preventDefault(),return false的区别
今天来看看前端的冒泡和事件默认事件如何处理1.event.stopPropagation()方法这是阻止事件的冒泡方法,不让事件向documen上蔓延,但是默认事件任然会执行,当你掉用这个方法的时候,如果点击一个连接,这个连接仍然会被打开,2.event.preventDefault()方法这是阻止默认事件的方法,调用此方法是,连接不会被打开,但是会发生冒泡,冒泡会传递到上一层的父...原创 2016-11-11 15:06:26 · 104229 阅读 · 4 评论 -
当js中的for循环遇到延时器或者定时器时需要注意的问题
当你在for循环里写if判断,再加延时器或者定时器时,一定要保存当前的i的值,再做处理,否则你拿到的i的值会是for循环里最大的那个;看demofor (var i = 0; i < 10; i++) { if(i == 5){ setTimeout(aa,2000); function aa(){ console.log( "i="+i); }原创 2016-12-18 02:33:40 · 17470 阅读 · 0 评论 -
前端跨域问题之----CORS详解
CORS是一个W3C标准,全称是"跨域资源共享"(Cross-origin resource sharing)。它允许浏览器向跨源服务器,发出XMLHttpRequest请求,从而克服了AJAX只能同源使用的限制。本文详细介绍CORS的内部机制。一、简介CORS需要浏览器和服务器同时支持。目前,所有浏览器都支持该功能,IE浏览器不能低于IE10。转载 2016-10-06 01:19:58 · 7828 阅读 · 0 评论 -
JS 对象(Object)和字符串(String)互转
利用原生JSON对象,将对象转为字符串[javascript] view plain copyvar jsObj = {}; jsObj.testArray = [1,2,3,4,5]; jsObj.name = 'CSS3'; jsObj.date = '6 Feb, 2017'; var str = JSON.stri原创 2017-02-06 10:49:35 · 102905 阅读 · 0 评论 -
jquery对象和javascript对象即DOM对象相互转换的方法
欢迎访问我的个人博客 http://xiaolongwu.cn/写在前面的话何为jQuery对象jQuery 对象是通过 jQuery 包装DOM 对象后产生的对象。jQuery 对象是 jQuery 独有的,其可以使用 jQuery 里的方法,但是不能使用 DOM 的方法;例如: $(“#img”).attr(“src”,”hua.png”); 这里的 $(“#img...原创 2018-02-08 00:53:17 · 1775 阅读 · 0 评论 -
javascript中数组的concat()方法
欢迎访问我的个人博客 http://xiaolongwu.cn/我们直接看例子伪代码 var arr1 = [1,2,3,4]; var arr2 = ["a","b","c"]; var c = arr1.concat(arr2,"sv",4,{"a":18,"ss":"ddd"}); con原创 2018-02-08 00:53:32 · 6313 阅读 · 0 评论 -
JavaScript中split()方法详解
欢迎访问我的个人博客 http://xiaolongwu.cn/split()方法在js处理字符串是很常见,也是很重要的一种方法必须熟练掌握split() 方法用于把一个字符串分割成字符串数组。 语法stringObject.split(separator,howmany)参数描述separator参数:必需填。字符串或正则表达式,从该参数指定的地方分割 s...原创 2018-02-08 00:58:28 · 62175 阅读 · 4 评论 -
js基础--将内存中的数据保存为文件下载到本地
欢迎访问我的个人博客:http://www.xiaolongwu.cn前言最近在做一个项目,有个需求就是,前端在内存中维护了一个很复杂的json对象,当点击下载按钮时,需要把这个json对象保存到文本中并下载到本地。总结了两种实现方式假如在我们项目中有个json对象如下: var jsonObj = { name: 'Leon WuV', age: ...原创 2019-01-15 23:49:15 · 12513 阅读 · 4 评论 -
js基础--测试随机数的概率是否相等
欢迎访问我的个人博客:http://www.xiaolongwu.cn前言今天我们来做一个有趣的测试,那就是我们在某个范围之间取随机数时,每项被随机到的概率是否相等。随机方法我们都知道Math.random()的结果是[0, 1)之间的小数,结果包括0但是不包括1。那么很简单就会想到Math.random() * n的结果是[0, n)之间的小数,结果包括0但是不包括n。那么parse...原创 2019-01-10 10:58:05 · 1827 阅读 · 0 评论 -
js基础进阶--从ajax到fetch的理解
欢迎访问我的个人博客:http://www.xiaolongwu.cn基本知识1. Ajax是什么?答:Ajax是一种可以在浏览器和服务器之间使用异步数据传输(HTTP请求)的技术。使用它可以让页面请求少量的数据,而不用刷新整个页面。而传统的页面(不使用Ajax)要刷新部分内容,必须重载整个网页页面。2. Ajax基于什么?答:它基于的是XMLHttpRequest(XHR)。这是一个比...原创 2018-12-26 23:45:54 · 690 阅读 · 0 评论 -
vue -- foreach not a function 或者map not a function的解决办法
欢迎访问我的个人博客:http://www.xiaolongwu.cn前言老套路,先说出现这种问题的原因:在做vue项目时,如果我们在组件中需要一个变量,哪怕这个变量最开始是没值的,我们也必须先在data中注册这个变量;只有这样,我们的这个变量才能是响应式的,不然就失去了响应式的功能;问题就在这里,好多人的习惯就是写变量的值等于’’(空)或者null,map和foreach方法只能对数...原创 2018-12-05 16:48:52 · 16394 阅读 · 4 评论 -
js基础 -- window.btoa和window.atob使用详解.md
欢迎访问我的个人博客:http://www.xiaolongwu.cn定义atob()解码一个Base64字符串。btoa()从一个字符串或者二进制数据编码一个Base64字符串。用法只有字符串才能被转换默认转换 ASCII字母和数字,不支持中文// 转base64var aa = btoa("dddddddd");// 转码结果 "ZGRkZGRkZGQ="//...原创 2018-09-18 19:19:36 · 3951 阅读 · 0 评论 -
js基础--深入理解call、apply、bind
一、函数的三种角色首先要先了解在函数本身会有一些自己的属性,比如:length:形参的个数;name:函数名;prototype:类的原型,在原型上定义的方法都是当前这个类的实例的公有方法;__proto__:把函数当做一个普通对象,指向Function这个类的原型函数在整个JavaScript中是最复杂也是最重要的知识,对...转载 2018-05-15 18:28:16 · 944 阅读 · 0 评论 -
js基础--深入javascript之原型和原型链
原型和原型链是js中的难点也是重点,明白了原型和原型链会让我们在后面不管是学习还是工作都会更加高效,并且原型和原型链会是面试中必不可少的话题。看完此篇文章一定会让你对原型,原型链有深刻全面的了解。深入系列:深入javascript之作用域深入系列:深入javascript...转载 2018-05-14 19:58:57 · 609 阅读 · 0 评论 -
关于HTML5中meta name="viewport" 的详解及用法
移动端的布局不同于pc端,首先我们要知道在移动端中,css中的1px并不等于物理上的1px,因为手机屏幕的分辨率已经越来越高,高像素但是屏幕尺寸却没有发生太大变化,那就意味着一个物理像素点实际上塞入了好几个像素。在移动端浏览器中以及某些桌面浏览器中,window对象有一个devicePixelR...转载 2018-05-04 17:54:48 · 16666 阅读 · 0 评论 -
js基础--获取浏览器当前页面的滚动条高度的兼容写法
欢迎访问我的个人博客:http://www.xiaolongwu.cn前言在开发中,兼容性问题是最常见的,今天就来介绍一下关于获取滚动条高度的兼容性写法,宽度同理,我在这里就不一一解释了各浏览器的写法IE6/7/8 document.documentElement.scrollTopIE9以上window.pageYOffset或者document.document...原创 2018-03-28 20:57:35 · 1818 阅读 · 0 评论 -
js基础--如何判断浏览器标签页是隐藏或者显示状态
欢迎访问我的个人博客:http://www.xiaolongwu.cn前言在工作中我们可能会遇到这样的需求,当浏览器切换到别的标签页或着最小化时,我们需要暂停页面上正在播放的视频或者音乐,这个需求就会用到我下面要说的这个知识点:document.visibilityState document.hiddenvisibilitychange具体用法浏览器标签页隐藏...原创 2018-03-27 19:06:05 · 4741 阅读 · 2 评论 -
Date.parse()与Date.getTime()方法详解(js获取时间戳的几种方式)
欢迎访问我的个人博客 http://xiaolongwu.cn/这两个方法的返回值都是 1970/1/1 午夜距离该日期时间的毫秒数实际中如何使用下面的例子中,我们将取得从 1970/01/01 到 2017/03/19 的毫秒数1、Date.parse()的 使用var d = Date.parse(&quot;2017/03/19&quot;)//或者var d = Dat...原创 2018-02-08 00:58:42 · 73396 阅读 · 1 评论 -
关于本地缓存localstorage与sessionStorage 数组 (array)字符串(string) 对象(object)的存储技巧和注意事项
localstorage与sessionStorage的使用方法都是一样的唯一的区别在与 localstorage是永久储存在你的计算机上 sessionstorage只要浏览器关闭,存储就消失 本地缓存 //储存一个数组到本地缓存数组 var a = [1,2,3] console.log(typeof a) //object //储存 sessionS原创 2016-09-26 01:57:10 · 11939 阅读 · 2 评论 -
关于日历实现代码里0x04bd8, 0x04ae0, 0x0a570的解释
0x04bd8,0x04ae0,0x0a570,0x054d5转载 2017-08-15 18:01:06 · 877 阅读 · 0 评论 -
关于鼠标滚轮事件的禁止方法
当鼠标或者键盘触发某一事件时,在JavaScript中,我们可以为这个事件设置相应的动作。当然浏览器本身甚至是操作系统也会有对某一事件的默认动作,这样除了由于我们设置了自己定义句柄而产生的动作之外,还会有默认的动作发生。通过事件属性取消默认动作DOM的Event对象,通过其preventDefault()方法来取消默认动作。在IE下,则是将event的retur转载 2016-10-20 09:59:58 · 8828 阅读 · 1 评论 -
onkeydown 与onkeyup不会区分键盘上的大小写 及解决方法
window.onkeypress = function(e){ console.log( e.keyCode); } window.onkeydown = function(e){ console.log( e.keyCode); } //上面onkeydown与onkeypress的区别是 onkeydown与onkeyup不会区分字母的大小写,全原创 2016-10-19 17:59:41 · 2396 阅读 · 0 评论 -
HTML5中<script>标签中的defer与async属性详解
在HTML中执行脚本最重要的方法就是使用元素,但是执行元素时会阻塞后面文档的加载。那么首先为什么会阻塞呢,是由于哪些原因呢?其实是标签中的src属性在作怪,因为一个src就相当于一次http请求,他的作用就是把src所对应的地址上的文档下载到本地,因此当浏览器碰到标签时,严格的说也就是src时,他会立即停止HTML文档的解析,而去下载并且执行脚本,当脚本执行完毕才会继续解析HTML原创 2016-10-06 09:51:08 · 1612 阅读 · 0 评论 -
URL详解 window.location的一系列方法
一、URL是什么 有哪些组成首先URL是通过window.location获取的 统一资源定位符 (Uniform Resource Locator, URL) 完整的URL由这几个部分构成: scheme://host:port/path?query#fragment scheme:通信协议原创 2016-10-06 00:23:04 · 7790 阅读 · 0 评论 -
px em rem 的区别
PX特点1. IE无法调整那些使用px作为单位的字体大小;2. 国外的大部分网站能够调整的原因在于其使用了em或rem作为字体单位;4.px像素(Pixel)。相对长度单位。像素px是相对于显示器屏幕分辨率而言的。em特点 1.em的值并不是固定的;2.em会继承父级元素的字体大小。3.em是相对长度单位。相对于当前对象内文本的字体尺寸。原创 2016-10-04 11:08:08 · 3686 阅读 · 0 评论 -
document.body、document.documentElement和window获取视窗大小的区别
在w3school关于window对象的介绍中,介绍了获取浏览器窗口大小的三种方法(浏览器的视口,不包括工具栏和滚动条)。对于Internet Explorer、Chrome、Firefox、Opera 以及 Safari:window.innerHeight – 浏览器窗口的内部高度window.innerWidth – 浏览器窗口的内部宽度对于 Internet Explore转载 2016-11-08 10:01:03 · 1709 阅读 · 0 评论 -
【javascript】 的严格模式 详解
一、概述除了正常运行模式,ECMAscript 5添加了第二种运行模式:“严格模式”(strict mode)。顾名思义,这种模式使得Javascript在更严格的条件下运行。设立”严格模式”的目的,主要有以下几个:- 消除Javascript语法的一些不合理、不严谨之处,减少一些怪异行为;- 消除代码运行的一些不安全之处,保证代码运行的安全;- 提高编转载 2016-09-30 00:48:34 · 460 阅读 · 0 评论 -
前端知识体系全部
一些开放性题目1.自我介绍:除了基本个人信息以外,面试官更想听的是你与众不同的地方和你的优势。 2.项目介绍 3.如何看待前端开发? 4.平时是如何学习前端开发的? 5.未来三到五年的规划是怎样的?position的值, relative和absolute分别是相对于谁进行定位的?absolute :生成绝对定位的元素, 相对于最近一级的 定位不是 st转载 2016-10-24 00:59:00 · 825 阅读 · 0 评论 -
JavaScript string 的replace
在使用JavaScript对字符串进行处理的时候我们经常会用到replace方法,很简单的一个方法,以前一直不以为意,直到今天看JavaScript语言精粹的时候读到了一个有趣的小例子的时候,并不是十分理解,了解了一下replace的用法才明白,原来replace不像想象中的那么简单。replace() 方法用于在字符串中用一些字符替换另一些字符,或替换一个与正则表达式匹配的子串。语法:s转载 2016-10-22 23:10:12 · 329 阅读 · 0 评论 -
localstorage 本地存储
本地存储的一些简单用法原创 2016-09-17 18:56:17 · 747 阅读 · 0 评论 -
js 绑定事件的几种方法 addEventListener()
看代码 <!DOCTYPE html><html> <head> <meta charset="UTF-8"> <title>添加事件的几种方法</title> <style type="text/css"> div{ width: 2原创 2016-10-20 12:07:04 · 8474 阅读 · 0 评论 -
js跨域问题 常见的集中解决方案
一、什么是跨域?要理解跨域问题,就先理解好概念。跨域问题是由于JavaScript语言安全限制中的同源策略造成的.简单来说,同源策略是指一段脚本只能读取来自同一来源的窗口和文档的属性,这里的同一来源指的是主机名、协议和端口号的组合.URL 说明 是否允许通信http://www.a.com/a.jsh转载 2016-10-07 23:08:06 · 779 阅读 · 0 评论