1.正则表达式:
①由模式和修饰符构成:/this/i this就是模式,i表示不区分大小写。这个作为搜索包含this字符串的正则
②字符串可以用match()、search()和replace()方法来使用正则表达式:
var str = "Visit Microsoft!";
var res = str.replace(/microsoft/i, "apple"); //将microsoft替换apple
或者:var res = str.replace("microsoft","apple"); //这个替换时区分大小写
③常见的修饰符包括:i(不区分大小写)、g(全局匹配,而不是找到一个就停止查找)、m(多行匹配)
④常见的正则模式:[abc]、[0-9]、\d、\s、\b、n+、n*、n?等等
2. 正则表达式对象:RegExp
含有两个方法:
①test() 方法用于检测一个字符串是否匹配某个模式,如果字符串中含有匹配的文本,则返回true,否则返回false
②exec() 该函数返回一个数组,其中存放匹配的结果。如果未找到匹配,则返回值为 null
举例:var patt = /e/;
patt.test("The best things in life are free!");
可以再简化为:/e/.test("The best things in life are fress!"); //返回值是true
另外:
http://www.W3Cfuns.com 提供了常见的需要用到的正则表达式
3.JavaScript中也支持采用 throw 或 try-catch 来处理程序错误。其中throw 语句允许我们创建自定义错误
详细用法参考:http://www.w3cschool.cc/js/js-errors.html
4.JavaScript调试方法,按F12,console:
①代码中支持console.log(“输出到控制台的内容”) 方法
②debugger关键字:可停止执行JavaScript,并调用调试函数,这个关键字与在调试工具中设置断点的效果一样
6.表单中邮箱验证的一种新方法:
判断输入的字符串中 @ 和 . 连个符号的索引位置,其中@不能为首,且@之后必须有一个.号。
举例:var x=document.forms["myForm"]["email"].value;
var atpos=x.indexOf("@");
var dotpos=x.lastIndexOf(".");
if (atpos<1 || dotpos<atpos+2 || dotpos+2>=x.length){}
7.JSON(JavaScript Object Notation),用于存储和传输数据格式
JSON 的格式是一个文本,然后可以被其他编程语言读取为数据格式传递
JSON 的语法规则是:键/值对,注意:键需要在双引号中
8.javascript:void() 表示的是 执行括号中的表达式,单不返回任何值
注意:href='#' 与 href='javascript:void(0)'
的区别是:
#号包含了一个位置详细,默认是锚 #top,也就是网页的上端,而javascript:void(0)代表一个死链接
9.JavaScript中函数可以存储在一个变量中,被存储的那个变量可以作为函
var x = function (a, b) {return a * b};//这实际上是一个匿名函数
var z = x(4, 3);
//z的值就是12以上代码效果和下面的一致,Function是JavaScript内置的函数构造器,但应尽量别用new关键字!!!
var x = new Function("a","b","return a*b");
var z = x(4,3);
10.如果表达式后面紧跟 () ,则函数变为一个自调用函数。如:
(function () {
var x = "Hello!!"; // 我将调用自己
})();
11.函数本质是一个对象,拥有对象的属性和方法,如果将 函数名.toString(); //会将整个函数体作为字符串返回
12.如果函数在调用时缺少参数,参数的值会默认设置为: undefined
JavaScript 函数有个内置的对象 arguments.函数的所有参数都放在arguments数组中,
可以通过arguments[i]来访问参数
注意:如果函数修改参数,不会修改参数的初始值(在函数外定义);但是:
如果参数是对象类型的,我们在函数内部修改对象的属性就会修改其初始的值了
13.在HTML中默认的全局对象是HTML页面本身,在浏览器中的页面对象是浏览器窗口(window 对象)。
所有没有指定对象的函数会自动变为 window 对象的函数,这时候某个 myFunction() 和
window.myFunction() 一致。
单全局变量 或 函数可能会带来重名的危险,所以最好别这么做
更多关于函数的知识:如call() 和 apply() 方法等等
参见:http://www.w3cschool.cc/js/js-function-invocation.html
13.* 闭包是可访问上一层函数作用域里变量的函数,即便上一层函数已经关闭 *