JS小记】的更多相关文章

原文:js小记 function 的 length 属性 [1,2,3]., ,这个略懂js的都知道. 但是  eval.length,RegExp.length,"".toString.length,1..toString.length  会得到什么呢? 分别得到 ,,,,这些数字代表什么呢? 这个是群里很多新人朋友一直问的一个问题,其实函数的 length 得到的是形参个数.可以参见这里 <MDN Function.length>.我们来简单看个例子: function…
好记性不如烂笔头. 1.document.ElementFromPoint:根据坐标获得元素 2.有时候要操作DOM页面,但是得不到预期结果,很可能是因为页面还没加载完成,在console控制台可以看到“Uncaught TypeError,cannot read property 'xxx' of null”.通常等页面加载完成再进行相应操作,写法如下: document.addEventListener('DOMContentLoaded', function () {your code..…
一.js对象 1.js对象 js对象是一种复合数据类型,它可以把多个(不同类型的)数据集中在一个变量中,并且给每个数据起名字. 2.对象与数组 对象的每个数据有对应的名字(属性名),我们通过叫名字访问具体哪个数据: 数组的每个数据没有名字,我们只能通过编号来访问具体哪个数据. 从本质讲,数组就是对象的特殊形式,数组的每个索引实质就是特殊化的 对象属性名.举个例子: var a = [0,1,2,3]; a['me'] = 1; a[-1] = '负数'; //负数 转换为 字符串 a[1.23]…
var str = "\\u6211\\u662Funicode\\u7F16\\u7801"; // 关于这样的数据转换为中文问题,常用的两种方法. // 1. eval 解析 str = eval("'" + str + "'"); // "我是unicode编码" // 2. unescape 解析 str = unescape(str.replace(/\\u/g, "%u")); // "…
原文:js 正则学习小记之匹配字符串 今天看了第5章几个例子,有点收获,记录下来当作回顾也当作分享. 关于匹配字符串问题,有很多种类型,今天讨论 js 代码里的字符串匹配.(因为我想学完之后写个语法高亮练手,所以用js代码当作例子) var str1 = "我是字符串1哦,快把我取走", str2 = "我是字符串2哦,快把我取走"; 比如这样一个字符串,匹配起来很简单 /"[^"]*"/g 即可. PS: 白色截图是 chrome 3…
原文:小记 js unicode 编码解析 var str = "\\u6211\\u662Funicode\\u7F16\\u7801"; 关于这样的数据转换为中文问题,常用的两种方法. 1. eval 解析 str = eval("'" + str + "'"); // "我是unicode编码" 2. unescape 解析 str = unescape(str.replace(/\\u/g, "%u"…
原文:js 正则学习小记之左最长规则 昨天我在判断正则引擎用到的方法是用 /nfa|nfa not/ 去匹配 "nfa not",得到的结果是 'nfa'.其实我们的本意是想得到整个字符串 "nfa not" 的,可却只得到了 'nfa'. 再来看个例子,/an (nfa)?(nfa test)?/ 去匹配 "an nfa test",如果和上面一样的解释,那应该只得到 'an nfa',接着第一个捕获组里是 'nfa' 第二个捕获组里是空. 我…
原文:js 正则学习小记之NFA引擎 之前一直认为自己正则还不错,在看 次碳酸钴,Barret Lee 等大神都把正则玩的出神入化后发现我只是个战五渣.  求抱大腿,求大神调教. 之前大致有个印象,正则有很多种引擎,但我根本不知道有哪些引擎. 今天在读<精通正则表达式>才发现有Traditional NFA,POSIX NFA 和 DFA (具体自己百度下吧).可用了这么久的正则,还不知道 js 属于哪一种呢.在<精通正则表达式>里有个简单是方法检测属于哪一种. 用 /nfa|nf…
原文:js 正则学习小记之匹配字符串优化篇 昨天在<js 正则学习小记之匹配字符串>谈到 个字符,除了第一个 个,只有 个转义( 个字符),所以 次,只有 次成功.这 次匹配失败,需要回溯后用 [^"] 才能匹配成功,当然最后一个 " 会直接匹配成功. 很明显,正常的字符串不可能全是转义,正常的字符串才是主流,当然不排除有人故意全转义的情况.所以这个正则需要次回溯后才能匹配完成,如果字符串增长到 1K 1M 肿么破呢?所以我们要修改下这个正则,前后换下位置么?难道是 /&q…
前言 本文主要内容为nw.js官方文档中没有提到,而在实际入手开发过程中才碰到的问题以及经验的汇总. 详情请查看官方文档:http://docs.nwjs.io/en/latest/References/Menu/ 1. MenuStrip与ContextMenu 在聊nwjs中的Menu之前先说下在传统window桌面端应用开发中的两种常见的菜单. windows中的MenuStrip 第一种:MenuStrip,菜单栏,通常在主窗体中的顶部,横向展示.如图:  windows中的Conte…
昨天在<js 正则学习小记之匹配字符串字面量>谈到 个字符,除了第一个 个,只有 个转义( 个字符),所以 次,只有 次成功.这 次匹配失败,需要回溯后用 [^"] 才能匹配成功,当然最后一个 " 会直接匹配成功. 很明显,正常的字符串不可能全是转义,正常的字符串才是主流,当然不排除有人故意全转义的情况.所以这个正则需要次回溯后才能匹配完成,如果字符串增长到 1K 1M 肿么破呢?所以我们要修改下这个正则,前后换下位置么?难道是 /"(?:[^"]|\\…
其实不知道怎么起这篇blog的题目了 其实只要涉及的内容是内存泄漏的问题,也有内存管理的一些知识,把学习的过程拿来分享 垃圾回收机制 js具有自动的垃圾收集机制,它会找出那些不在继续使用的变量然后释放其内存,垃圾收集器会按照固定的时间间隔周期性的执行这一操作 我们通过下面的例子来理解垃圾收集器的执行过程 <div id="test">sss</div> <script type="text/javascript"> functio…
最近,我学习了jquery的源码,有个很深的认识就是——当对js的基本语法和面向对象思维了解比较熟悉之后,js真正的精髓在通过阅读一些优秀的框架源码也显现出来,我个人总结为对原型(原型链)和闭包两个基本认识上的大头的全面认识和灵活运用,当然还有在编码路上需要慢慢积累的数据结构.代码技巧.内存管理和事件回调机制经验等方面知识的掌握. 所以今天写了几行代码试了试原型的脾性,看下面代码: function chainOne(){ this.name1="zhuxingyu"; this.ag…
HTML: <div id="goTop"> <a href="#top"><img src="~/Content/themes/base/images/ico_top.gif" alt="回到页首" title="回到页首 Top"></a> </div> CSS: #goTop { bottom: 15px; margin: 0 auto; p…
前言 本文为开发nw中遇到的各种问题,仅以记录供备忘以及遇到相同问题的人的一点点解决思路. 1. package.json中的window字段无效 原因:package.json中的window字段,只在main字段为*.html或是外部网址时有效,当为 *.js时是无效的. { "name": "blog", "main": "http://xxcanghai.cnblogs.com/",//main为网址,下方的windo…
前言 因为我们的项目是2C的,而XP系统是最大的用户量占比,所以只能使用nw开发而不能用Electron,本文谨记开发nw过程中遇到的各种问题以及解决方案. nw.Window.open打开新窗口不能设定指定位置 问题描述: nw.Window.open打开新窗口API中的参数option中position字段只能指定为center或mouse.如字面含义:center为屏幕正中央,mouse为鼠标当前位置. 几乎可以推测,nw的鼠标右键菜单应该也是使用此接口,明显是为了弹出右键菜单用的,除此之…
作为世界上最优美的语言javascript的使用者,呵呵,js的魅力是无穷的,今天来聊聊他的魅(dan)力(teng)之一,变量提升. 每种语言所定义的变量基本都会有一定得作用域,而js的作用域则存在着一定的陷阱.首先看一下下面一道题: <script> var str1 = "haha"; var str2 = "hehe"; function t1() { console.log(str1); console.log(str2); var str2…
concat() 方法用于连接两个或多个数组. 该方法不会改变现有的数组,而仅仅会返回被连接数组的一个副本. var a = [1,2,3]; document.write(a.concat(4,5)); shift() 方法用于把数组的第一个元素从其中删除,并返回第一个元素的值. var arr = new Array(3) arr[0] = "George" arr[1] = "John" arr[2] = "Thomas" document…
之前看了很多百度搜索出的东西,十个有九个是不能实用的,个个讲的都不详细,今天详细给大家讲解下关于这个图片“跑马灯”滚动效果,源码如下: <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN""http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns="http://www.w3.org/1…
源码如下,如遇调试问题,可以找我解决: <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns="http://www.w3.org/1999/xhtml" > <head runat="serve…
今天写JS代码,遇到动态生成多个名称相同的input复选按钮 需要判断其是否是数组,用到了if (typeof(document.MapCheckMgr.checkid)!="undefined") 以前用得少,就顺便查了一下关于typeof的那些事 typeof用以获取一个变量或者表达式的类型,typeof一般只能返回如下几个结果: number,boolean,string,function(函数),object(NULL,数组,对象),undefined. 如: alert(ty…
在JavaScript中,this 对象是在函数被调用时动态定义的. JS中有三种方法来设置this对象: someThing.someFunction(arg1, arg2, argN) someFunction.call(someThing, arg1, arg2, argN) someFunction.apply(someThing, [arg1, arg2, argN]) 上面几个例子中, this 都是 someThing, 调用没有前导父对象的函数通常会得到全局对象, 在大多数浏览器…
一.字符串反转 第一种方法:利用数组方法 //先split将字串变成单字数组,然后reverse()反转,然后将数组拼接回字串 var str = "abcdef"; str.split("").reverse().join('') 第二种方法:暴力遍历 var str="abcdef" ,str2=""; var i=str.length; i=i-1; for (var x = i; x >=0; x--) { st…
今天看了第5章几个例子,有点收获,记录下来当作回顾也当作分享. 关于匹配字符串问题,有很多种类型,今天讨论 js 代码里的字符串匹配.(因为我想学完之后写个语法高亮练手,所以用js代码当作例子) var str1 = "我是字符串1哦,快把我取走", str2 = "我是字符串2哦,快把我取走"; 比如这样一个字符串,匹配起来很简单 /"[^"]*"/g 即可. PS: 白色截图是 chrome 34 控制台中运行的结果,深灰色是 su…
数组 JS中的数组来自window,是一个全局的对象,typeof的值是'object'. 创建数组: 1.Array(3):当只传一个值的时候,会生成一个长度为该数值的空数组. 2.Array(3,3):当传入的值大于1个的时候 3. new Array(3) 跟加不加new是一样的 4. new Array(3,3) 跟加不加new是一样的 5. a = [1,2,3] 最好用的 数组的本质 数组就是数据的有序的集合,但是从JS的角度来看,数组就是原型链中有Array.prototype的对…
原生jsvar a = document.getElementById("dom"); del_space(a); //清理空格 var b = a.childNodes; //获取a的全部子节点: var c = a.parentNode; //获取a的父节点: var d = a.nextSibling; //获取a的下一个兄弟节点 var e = a.previousSibling; //获取a的上一个兄弟节点 var f = a.firstChild; //获取a的第一个子节点…
Generator的异步实现 整理了一下在学习和使用JS异步过程中的一些知识点.核心是在Generator实例的的回调中调度实例的下一步,同样的思想也能用于其它语言.比如Python中使用Generator实现了协程.C#早期有也这种TheadPool+Generator的异步实现. 什么是Generator Generator 为生成器的意思,生成器函数的执行可以分段执行,函数在每一次调用后,函数只会执行到下一个位置再跳出函数. Generator的简单使用 通过在申明方法的时候使用 * 和方…
参考javascript编程全解  javascript高级程序设计 javascript经典实例 对事件的处理方式称为事件处理程序或事件侦听器 ,对于一个元素或事件,只能设定1个事件处理程序,却可以同时设定多个事件监听器 1)设定为HTML元素的属性 <!DOCTYPE html> <meta charset="UTF-8" /> <head></head> <body> <a href="http://ww…
网页上的一些广告文字,一直会滚动是怎么做到的,今天给大家演示下,非常简单,源码如下(本案例是在.net平台上,但HTML是通用的): <!DOCTYPE html> <html> <head> <meta charset=" utf-8"><!--这个很重要,要加上--> <title>荧光屏文字 滚动效果</title> <style type="text/css">…
1. JSON解析undefined JSON.parse(undefined) VM4456:2 Uncaught SyntaxError: Unexpected token u 2. 事件传值 on('change', {index: i}, function(event) { //多选操作 console.info(event.data.index) })…