简言 在JavaScript中,经常会用到正则表达式来进行模式匹配.例如,登录名验证,密码强度验证,字符串查找或替换等操作.现在就开始吧,零基础写出你的第一个正则表达式! 在做用户注册时,都会用到登录名正则校验.要写出正确的正则表达式,先要定义表达式规则.假设登录名做如下规则定义: 最短4位,最长16位 {4,16} 可以包含小写大母 [a-z] 和大写字母 [A-Z] 可以包含数字 [0-9] 可以包含下划线 [ _ ] 和减号 [ - ] 根据以上规则,很容易给出正则表达式的字面量如下: v…
javascript开发过程中,强制类型转换一般发生在条件判断和==运算符.其他情况,发生的类型转换(与这两种情况也是基本类似,属于万变不离其宗的范畴),暂不讨论. == 双等运算符 考虑代码: a == b 如果a.b的类型一致,则不涉及任何强制类型转换的功能,不在这里讨论. 1. 基本类型值 null == undefined //true 在双等运算符两边如果是undefined 和 null,则返回的结果为true.也就只有在==的时候,null和undefined相等,除此之外,都不存…
译注:原文是<JavaScript高级程序设计>的作者Nicholas Zakas写的,本翻译纯属为自己学习而做,仅供参考.原文链接:这里 很多年前,我在一次Goole面试被问到,如何在web应用中提供更好的用户体验.浮现在我脑海里的第一个想法是,通过比<input type="file">标签更好的方式来进行文件操作.虽然web发展一路高歌猛进,但自从该标签引进以来,我们操作文件的方式就一直使用它而从来没有改变过.幸运的是,有了HTML5和相关API,我们在最…
1.javascript的对象的概念 在javascript中,除了null和undefined以处,其他的数据类型都被定义成了对象 也可以用创建对象的方法定义变量,string,math,array,data都是javascript中重要的内置对象. 在javascript程序大多数功能都是基于对象实现的 var aa=Number.MAX_VALUE; //利用数字对象获取可表示最大数 var bb=new String("hello world"); //创建字符串对象 var…
1.javascript的对象的概念 在javascript中,除了null和undefined以处,其他的数据类型都被定义成了对象 也可以用创建对象的方法定义变量,string,math,array,data都是javascript中重要的内置对象. 在javascript程序大多数功能都是基于对象实现的 var aa=Number.MAX_VALUE; //利用数字对象获取可表示最大数 var bb=new String("hello world"); //创建字符串对象 var…
javascript中有5中数据类型(也称为基本数据类型):Undefined.Null.Boolean.Number和String,还有一种复杂数据类型——object,object本质是由一组键值对组成的. typeof操作符:用于检测给定变量的数据类型,对一个值试用typeof操作符可能返回下列某个字符串: ♦ “undefined”——表示值未定义: ♦ “boolean”——表示值是布尔值 :♦ “string”——表示值是字符: ♦ “number”——表示值是数值:  ♦ “obj…
作为一个后端开发的程序员,一直就对JavaScript情有独钟,作为一门前后端通吃的语言,必须赞一下.而且之前很长一段时间都有在做JavaScript,一路都是和ie8死磕,磕完又找低版本的谷歌磕,坑坑洼洼不计其数,但是收获就是了解到JavaScript很多好用的特性,熟练使用这些特性,不仅能加快开发速度,还能让自己的代码看起来不至于那么low,这是每个前端程序员都想做到的! 逻辑运算 JavaScript中逻辑运算有3中:且(&&),或(||),非(!),不过在说这三种逻辑运算之前,先解…
将值从一种类型转换为另一种类型通常称为类型转换,这是显式的情况:隐式的情况称为强制类型转换,JavaScript 中的强制类型转换总是返回标量基本类型值,如字符串.数字和布尔值. 如何理解: 类型转换发生在静态类型语言的编译阶段,而强制类型转换则发生在动态类型语言的运行时? 1.如果是静态语言,比如c等,所有的类型转换应该都是在编译阶段处理的吧? 2.如果是动态语言,如js等, 编译阶段会处理类型转换吗? 一.ToString 它负责处理非字符串到字符串的强制类型转换 数字的字符串化遵循通用规则…
今天在程序中出现一个bugger ,调试了好久,最后才发现,原来是这个问题. 做了一个实验: alert(parseInt("01")),当这个里面的值为01====>07时都是正常的,但是在"08","09"就会返回0 (这种现象出现在ie内核的浏览器中,如360浏览器就会出现这种错误)(谷歌,火狐不受影响). 查阅资料得知着这种现象原因: 大神的解释: 01--07自然没有问题,但是09,08都是不合格的八进制形式,所以被按照0处理了.…
这一部分内容是承接上一篇的, 建议先阅读谈 JavaScript 中的强制类型转换 (1. 基础篇) 前两章讨论了基本数据类型和基本包装类型的关系, 以及两个在类型转换中十分重要的方法: valueOf 和 toString 方法. 接下来的内容建立在前两章之上, 给出判断隐式类型转换结果的方法, 文章最后部分给出了多个练习以及解析, 用以检验文中讨论方法的正确性. 3 各种类型之间的强制类型转换 此处谈的强制类型转换指的是除了符号类型(symbol)之外的基本数据类型以及对象之间的类型转换,…