js复习笔记day3

来源:互联网 发布:java转义字符 编辑:程序博客网 时间:2024/06/10 01:51

自动转换类型

5 + null    // 返回 5         null 转换为 0"5" + null  // 返回"5null"   null 转换为 "null""5" + 1     // 返回 "51"      1 转换为 "1"  "5" - 1     // 返回 4         "5" 转换为 5


JavaScript 正则表达式

正则表达式(英语:Regular Expression,在代码中常简写为regexregexpRE)使用单个字符串来描述、匹配一系列符合某个句法规则的字符串搜索模式。

搜索模式可用于文本搜索和文本替换


使用字符串方法

JavaScript 中,正则表达式通常用于两个字符串方法 : search() replace()。

search()方法 用于检索字符串中指定的子字符串,或检索与正则表达式相匹配的子字符串,并返回子串的起始位置。

replace()方法 用于在字符串中用一些字符替换另一些字符,或替换一个与正则表达式匹配的子串。

var str = "Visit Runoob!"; var n = str.search(/Runoob/i);

使用正则表达式且不区分大小写将字符串中的 Microsoft 替换为 Runoob :

var str = document.getElementById("demo").innerHTML; var txt = str.replace(/microsoft/i,"Runoob");

使用 test()

test() 方法是一个正则表达式方法。

test() 方法用于检测一个字符串是否匹配某个模式,如果字符串中含有匹配的文本,则返回 true,否则返回 false

<script>var patt1=new RegExp("a");document.write(patt1.test("The best things in life are free"));//true//  ==   /e/.exec("The best things in life are free!");</script>

使用 exec()

exec() 方法是一个正则表达式方法。

exec() 方法用于检索字符串中的正则表达式的匹配。

该函数返回一个数组,其中存放匹配的结果。如果未找到匹配,则返回值为 null

以下实例用于搜索字符串中的字母 "e":

/e/.exec("The best things in life are free!");
例子:

/*是否带有小数*/function    isDecimal(strValue )  {     var  objRegExp= /^\d+\.\d+$/;   return  objRegExp.test(strValue);  }  /*校验是否中文名称组成 */function ischina(str) {var reg=/^[\u4E00-\u9FA5]{2,4}$/;   /*定义验证表达式*/return reg.test(str);     /*进行验证*/}/*校验是否全由8位数字组成 */function isStudentNo(str) {var reg=/^[0-9]{8}$/;   /*定义验证表达式*/return reg.test(str);     /*进行验证*/}/*校验电话码格式 */function isTelCode(str) {var reg= /^((0\d{2,3}-\d{7,8})|(1[3584]\d{9}))$/;return reg.test(str);}/*校验邮件地址是否合法 */function IsEmail(str) {var reg=/^([a-zA-Z0-9_-])+@([a-zA-Z0-9_-])+(\.[a-zA-Z0-9_-])+/;return reg.test(str);}

JavaScript 错误 - throwtry catch

try 语句测试代码块的错误。

catch 语句处理错误。

throw 语句创建自定义错误。


JavaScript 抛出(throw)错误

当错误发生时,当事情出问题时,JavaScript 引擎通常会停止,并生成一个错误消息。

描述这种情况的技术术语是:JavaScript 将抛出一个错误。


JavaScript try catch

try 语句允许我们定义执行时进行错误测试的代码块

catch 语句允许我们定义当 try代码块发生错误时,所执行的代码块。

JavaScript 语句 try  catch 是成对出现的。

<script>var txt="";function message(){try {adddlert("Welcome guest!");}catch(err) {txt="本页有一个错误。\n\n";txt+="错误描述:" + err.message + "\n\n";txt+="点击确定继续。\n\n";alert(txt);}}</script>

例子2

<script>function myFunction() {    var message, x;    message = document.getElementById("message");    message.innerHTML = "";    x = document.getElementById("demo").value;    try {         if(x == "")  throw "值为空";        if(isNaN(x)) throw "不是数字";        x = Number(x);        if(x < 5)    throw "太小";        if(x > 10)   throw "太大";    }    catch(err) {        message.innerHTML = "错误: " + err;    }}</script>


debugger 关键字

var x = 15 * 5;debugger;document.getElementbyId("demo").innerHTML = x;

JavaScript 变量提升

函数及变量的声明

var x = 5; // 初始化 xvar y = 7; // 初始化 y不会var x; // 声明 xx = 5; // 变量 x 设置为 5

要理解以上实例就需要理解 "hoisting(变量提升)"

变量提升:函数声明和变量声明总是会被解释器悄悄地被"提升"到方法体的最顶部。


JavaScript 严格模式(use strict)

JavaScript 严格模式(strict mode)即在严格的条件下运行。

严格模式下你不能使用未声明的变量。


JavaScript 使用误区

比较运算符常见错误

var x = 10;var y = "10";if (x == y)//trueif (x === y)//false


以下实例由于类型不一致不会执行 alert 弹窗:

var x = 10;switch(x) {    case "10": alert("Hello");}

加法与连接注意事项

var x = 10 + 5;          // x 的结果为 15var x = 10 + "5";        // x 的结果为 "105


浮点型数据使用注意事项

JavaScript 中的所有数据都是以 64 位浮点型数据(float) 来存储。

所有的编程语言,包括 JavaScript,对浮点型数据的精确度都很难确定

var x = 0.1;var y = 0.2;var z = x + y            // z 的结果为 0.3if (z == 0.3)            // 返回 false

解决:

var z = (x * 10 + y * 10) / 10;       // z 的结果为 0.3

JavaScript 字符串分行

JavaScript 允许我们在字符串中使用断行语句:

但是,在字符串中直接使用回车换行是会报错的:

var x = "HelloWorld!";
var x = "Hello \World!";//正确


Return 语句使用注意事项


function myFunction(a) {    var    power = 10;      return;       // 分号结束,返回 undefined    a * power;}

JavaScript 中, 对象 使用 名字作为索引。

如果你使用名字作为索引,当访问数组时,JavaScript 会把数组重新定义为标准对象。

执行这样操作后,数组的方法及属性将不能再使用,否则会产生错误:


var person = [];person["firstName"] = "John";person["lastName"] = "Doe";person["age"] = 46;var x = person.length;         // person.length 返回 0var y = person[0];             // person[0] 返回 undefined


Undefined 不是 Null

JavaScript 中, null 用于对象, undefined 用于变量,属性和方法。

对象只有被定义才有可能为 null,否则为 undefined

如果我们想测试对象是否存在,在对象还没定义时将会抛出一个错误。

if (typeof myObj !== "undefined" && myObj !== null)

程序块作用域

在每个代码块中 JavaScript 不会创建一个新的作用域,一般各个代码块的作用域都是全局的。

以下代码的的变量 i 返回 10,而不是 undefined

for (var i = 0; i < 10; i++) {    // some code}return i;














原创粉丝点击