写JS时不可避免要用到 if 与 逻辑运算符( ||, &&). 如果你经常阅读Js的第三方组件源码, 会发现有一种写法作为初始化变量的方法经常出现. var variable = variable || {}; 我第一次看到这样的代码时觉得很不可思议,在多数主流语言下(如Java,C#,C/C++)上面得到的结果值毫无疑问会是一个布尔值,且始终为true. 在看看另一句我们自己写时也常使用的 if( variable ){ somethingToDo(); } 虽然用得顺手,可是你真的知…
今天在给一个学妹调她的代码BUG时,她的问题就是在一个for循环里不清楚流程的具体流向,所以导致了页面怎么调都是有问题,嗯确实你如果不清楚语句流向很轻易就会出问题,所以说for循环不会用或者说用的不恰当还是很可怕的.我也借此机会顺带复习了一下javascript里的for()循环.翻出了自己以前关于for循环的一些笔记,有些内容跃然浮于脑海中,以下大部分来自很久之前的笔记,可能会有一部分来自于网上其他优秀博客的内容. for循环里共有三个流程语句,这三个部分之间用";"分开.第一个是一…
Javascript里,想把一个整数转换成字符串,字符串长度为2.  想把一个整数转换成字符串,字符串长度为2,怎么弄?比如 1 => "01"11 => "11"    有几个思路1.判断数字是几位数 然后加上0 2.除以10,然后转换成字符串,然后把小数点删掉 var b = 2 b = (b > 9 ? "" : "0") +b…
前序:我一直对于for跟for..in存在一种误解,我觉得for都能把事情都做了,为啥还要for...in...这玩意了,有啥用,所以今天就说说JavaScript里的循环语句. 循环 要计算1+2+3,我们可以直接写表达式: 但是当需要计算1+2+3+4+5......+10000, 如果通过表达式来写,估计我们会奔溃, 所以我们现在就可以使用循环(for)来搞定, 其实也很简单,javaScript的循环有两种,一种是for循环,通过初始条件.结束条件和递增条件来循环执行语句块: 这一种估计…
在传统的Javascript里,当我们对某个页面元素进行某种操作前,最好先判断这个元素是否存在.原因是对一个不存在的元素进行操作是不允许的.例如: document.getElementById("someID").innerText("hi"); 如果ID为"someID"的元素不存在,我们将得到Javascript运行错误:document.getElementById("someID") is null 正确的写法应该是…
本文旨在帮助自己和大家理解 JS 里的 this, 翻译.整理并改写自本人关注的一个博主 Dmitri Pavlutin,原文链接如下: https://dmitripavlutin.com/gentle-explanation-of-this-in-javascript/ 欢迎大家批评指正.共同进步. 1. this 的神秘 长久以来,this 关键字对我来说都是神秘. 在 Java, PHP 或者其他标准语言里,this 是 class 方法里当前对象的实例.this 不能在方法外调用,这样…
//JavaScript根据文件名后缀判断是否图片文件 //图片文件的后缀名 var imgExt = new Array(".png",".jpg",".jpeg",".bmp",".gif"); //获取文件名后缀名 String.prototype.extension = function(){ var ext = null; var name = this.toLowerCase(); var i…
JavaScript里的依赖注入 我喜欢引用这句话,“程序是对复杂性的管理”.计算机世界是一个巨大的抽象建筑群.我们简单的包装一些东西然后发布新工具,周而复始.现在思考下,你所使用的语言包括的一些内建的抽象函数或是低级操作符.这在JavaScript里是一样的. 迟早你需要用到其他开发人员的抽象成果——即你依靠别人的代码.我喜欢依赖自由(无依赖)的模块,但那是难以实现的.甚至你创建的那些漂亮的黑盒子组件也或多或少会依赖一些东西.这正是依赖注入大显身手的之处.现在有效地管理依赖的能力是绝对必要的.…
看了知乎上的话题 如何才能通俗易懂的解释javascript里面的‘闭包’?,受到一些启发,因此结合实例将回答中几个精要的答案做一个简单的分析以便加深理解. 1. "闭包就是跨作用域访问变量."  [示例一] var name = 'wangxi' function user () { // var name = 'wangxi' function getName () { console.log(name) } getName() } user() // wangxi 在 getNa…
如果你没有注意过这个问题,那么这个标题应该会让你感到困惑,判断数据类型这么基础的问题能有什么坑呢? 少年,你不能太天真了,我们朝夕面对的这门语言,可是JavaScript呀,任何你觉得已经习以为常的东西都可能瞬间转化成一个大坑,令人百思不得其解. 但是正是因为同样的原因,我们可以在学习和使用JavaScript这门语言的时候提出和讨论一些这门语言独有的,十分有趣的问题.比如我们今天要讨论的,在JavaScript当中如何判断一个数组是数组. JavaScript有五种方法可以确定一个值到底是什么…