//1.undefined 是派生自null的 //alert(undefined == null); //alert(undefined === null); ////结果 true false //2.建议还是养成编码的规范, //不要忘记初始化变量。 //var box; //var car = null; //alert(typeof box == typeof car) //结果false //var hello = 'Hello World!'; //var hello2 = Boolean(hello); //alert(typeof hello); ////String类型 //上面是一种显示转换,属于强制性转换。 //而实际应用中,还有一种隐式转换。 //比如,在if 条件语句里面的条件判断,就存在隐式转换。 //var hello = 'Hello World!'; //if (hello) { // alert('如果条件为true,就执行我这条!');//结果:true //} else { // alert('如果条件为false,就执行我这条!'); //} //以下是其他类型转换成Boolean类型规则 //数据类型转换为true 的值转换为false 的值 //Boolean true false //String 任何非空字符串空字符串 //Number 任何非零数字值(包括无穷大) 0 和NaN //Object 任何对象null //Undefined undefined //要想确定一个数值到底是否超过了规定范围, //可以使用isFinite()函数。如果没有超过, //返回true,超过了返回false。 //可以通过Number.NaN 得到NaN 值, //任何与NaN 进行运算的结果均为NaN, //NaN 与自身不相等(NaN 不与任何值相等)。 //alert(Number.NaN); //NaN //alert(NaN+1); //NaN //alert(NaN == NaN) //false //继承 //function Box() { // this.name = '测试'; // this.age = 18; // this.height = 171; //} //function Test() { // this.sex = '男'; //} //Test.prototype = new Box(); //var test = new Test(); //alert(test.age); //function Box(name, age) { // alert("姓名:" + name + "年龄:" + age); //} //Box("asd", 12); //function Box(name,age) //{ // return '你的姓名:' + name + ',年龄' + age; //} //alert(Box('测试', 18)); //function Box(num1,num2) { // return num1 * num2; //} //var num = Box(15, 15); //alert(num); //function Box(num) { // if (num < 50) { // return num; // } // else { // return 100; // } //} //alert(Box(10)); //alert(Box(80)); //function Box() { // return arguments[0] + '|' + arguments[1];//得到每次参数的值 //} //alert(Box(1, 2, 3, 4, 5, 6));//传递参数 //function Box() { // return arguments.length;//得到6 //} //alert(Box(1, 2, 3, 4, 56, 7)); //function box() { // var sum = 0; // if (arguments.length == 0) { // return sum;//如果没有参数就返回0; // } // for (var i = 0; i < arguments.length; i++) {//如果有,则累加 // sum = sum + arguments[i]; // } // return sum;//返回累加结果 //} //alert(box(2, 6541, 3, 1)); //var box = new Object(); //box.name='测试name'; //box.age = 28; //alert(box['name']) //alert(box['age']) //delete box.age;//删除属性 //alert(box['name']) //alert(box.age)//undefined // var box = [ //{ //第一个元素是一个对象 // name: '李炎恢', // age: 28, // run: function () { // return 'run 了'; // } //}, //['马云', '李彦宏', new Object()],//第二个元素是数组 //'江苏', //第三个元素是字符串 //25 + 25, //第四个元素是数值 //new Array(1, 2, 3) //第五个元素是数组 // ]; //var box = ['李炎恢', 28, '盐城']; //当前数组 //var box2 = box.slice(1); //box.slice(1,3),2-4 之间的元素 //alert(box2); //28,盐城 //alert(box); //当前数组 //splice 中的删除功能: //var box = ['李炎恢', 28, '盐城']; //当前数组 //var box2 = box.splice(0,2); //截取前两个元素 //alert(box2); //返回截取的元素 //alert(box); //当前数组被截取的元素被删除 //splice 中的插入功能: //var box = ['李炎恢', 28, '盐城']; //当前数组 //var box2 = box.splice(1, 0, '计算机编程', '江苏'); //没有截取,但插入了两条 //alert(box2); //在第2 个位置插入两条 //alert(box); //输出 //splice 中的替换功能: //var box = ['李炎恢', 28, '盐城']; //当前数组 //var box2 = box.splice(1, 1, 100); //alert(box2); //alert(box); //Date: //var box = new Date(Date.UTC(2011, 11, 5, 15, 13, 16)); //alert('toString:' + box.toString()); //alert('toLocaleString:' + box.toLocaleString()); //按本地格式输出 //PS:这两个方法在不同浏览器显示的效果又不一样,但不用担心,这两个方法只是在 //调试比较有用,在显示时间和日期上,没什么价值。valueOf()方法显示毫秒数。 //日期格式化方法 //Date 类型还有一些专门用于将日期格式化为字符串的方法。 //var box = new Date(); //alert(box.toDateString()); //以特定的格式显示星期几、月、日和年 //alert(box.toTimeString()); //以特定的格式显示时、分、秒和时区 //alert(box.toLocaleDateString()); //以特定地区格式显示星期几、月、日和年 //alert(box.toLocaleTimeString()); //以特定地区格式显示时、分、秒和时区 //alert(box.toUTCString()); //以特定的格式显示完整的UTC 日期。 //alert(box.getTime()); //获取日期的毫秒数,和valueOf()返回一致 //alert(box.setTime(100)); //以毫秒数设置日期,会改变整个日期 //alert(box.getFullYear()); //获取四位年份 //alert(box.setFullYear(2012)); //设置四位年份,返回的是毫秒数 //alert(box.getMonth()); //获取月份,没指定月份,从0 开始算起 //alert(box.setMonth(11)); //设置月份 //alert(box.getDate()); //获取日期 //alert(box.setDate(8)); //设置日期,返回毫秒数 //alert(box.getDay()); //返回星期几,0 表示星期日,6 表示星期六 //alert(box.setDay(2)); //设置星期几 //alert(box.getHours()); //返回时 //alert(box.setHours(12)); //设置时 //alert(box.getMinutes()); //返回分钟 //alert(box.setMinutes(22)); //设置分钟 //alert(box.getSeconds()); //返回秒数 //alert(box.setSeconds(44)); //设置秒数 //alert(box.getMilliseconds()); //返回毫秒数 //alert(box.setMilliseconds()); //设置毫秒数 //alert(box.getTimezoneOffset()); //返回本地时间和UTC 时间相差的分钟数 //alert(/box/i.test('This is a Box!')); //alert(/box/i.exec('This is a Box!')); //除了test()和exec()方法,String 对象也提供了4 个使用正则表达式的方法。 //String 对象中的正则表达式方法 //方法 含义 //match(pattern) 返回pattern 中的子串或null //replace(pattern, replacement) 用replacement 替换pattern //search(pattern) 返回字符串中pattern 开始位置 //split(pattern) 返回字符串按指定pattern 拆分的数组 /*使用match 方法获取获取匹配数组*/ //var pattern = /box/ig; //var str = 'This is a Box!,That is a Box too'; //alert(str.match(pattern));//匹配到两个Box,Box //alert(str.match(pattern).length);//获取数组的长度 2 /*使用search来查找匹配数据*/ //var pattern = /box/ig; //var str = "This is a Box!,That is Box too"; //alert(str.search(pattern));//查找到返回位置,否则返回-1; //PS:因为search方法查找到即返回,也就是说无需g全局. ///*使用replace 替换匹配到的数据*/ //var pattern = /box/ig; //var str = 'This is a Box!,That is a Box too'; //alert(str.replace(pattern, 'Tom')); //将Box 替换成了Tom //var pattern = / /ig; //var str = 'This is a Box!,That is a Box too'; //alert(str.split(pattern)); //将空格拆开分组成数组 //RegExp对象的静态属性 //属性短名 含义 //input $_ 当前被匹配的字符串 //lastMatch $& 最后一个匹配字符串 //lastParen $+ 最后一对圆括号内的匹配子串 //leftContext $` 最后一次匹配前的子串 //multiline $* 用于指定是否所有的表达式都用于多行的布尔值 //rightContext $' 在上次匹配之后的子串 /*使用静态属性*/ //var pattern = /(g)oogle/ig; //var str = 'This is google!'; //pattern.test(str); //执行一下 //alert(RegExp.input); //This is google! //alert(RegExp.leftContext); //This is //alert(RegExp.rightContext); //! //alert(RegExp.lastMatch); //google //alert(RegExp.lastParen); //g //alert(RegExp.multiline); //false //global Boolean 值,表示g 是否已设置 //ignoreCase Boolean 值,表示i 是否已设置 //lastIndex 整数,代表下次匹配将从哪里字符位置开始 //multiline Boolean 值,表示m 是否已设置 //Source 正则表达式的源字符串形式 /*使用实例属性*/ //var pattern = /google/ig; //alert(pattern.global); //true,是否全局了 //alert(pattern.ignoreCase); //true,是否忽略大小写 //alert(pattern.multiline); //false,是否支持换行 //alert(pattern.lastIndex); //0,下次的匹配位置 //alert(pattern.source); //google,正则表达式的源字符串 //var pattern = /google/g; //var str = 'google google google'; //pattern.test(str); //google,匹配第一次 //alert(pattern.lastIndex); //6,第二次匹配的位 // 获取控制 // 正则表达式元字符是包含特殊含义的字符。它们有一些特殊功能,可以控制匹配模式的 // 方式。反斜杠后的元字符将失去其特殊含义。 // 字符类:单个字符和数字 // 元字符/元符号匹配情况 // . 匹配除换行符外的任意字符 // [a-z0-9] 匹配括号中的字符集中的任意字符 // [^a-z0-9] 匹配任意不在括号中的字符集中的字符 //d 匹配数字 //D 匹配非数字,同[^0-9]相同 //w 匹配字母和数字及_ //W 匹配非字母和数字及_ // 字符类:空白字符 // 元字符/元符号匹配情况 //