首页 > 代码库 > JavaScript语言精粹1字符串,对象字面量
JavaScript语言精粹1字符串,对象字面量
字符串 Strings
JavaScript没有,字符,类型。仅包含一个字符的,字符串即可。
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>testString1</title> <style type="text/css"></style> </head> <body> </body> </html> <script type="text/javascript"> //javascript没有 字符 一个字符的 字符串 就是 字符 var str1 = "I"; //字符串 有 length 属性的! var str2 = "I am "; console.log(str1.length); console.log(str2.length); //字符串一旦创建,无法改变,用 + 连接字符串 if(‘c‘+‘a‘+‘t‘ === "cat") console.log("字符串拼接,值相等,类型相等"); //字符串转大写的方法 console.log(‘cat‘.toUpperCase() === "CAT"); </script>
对象Objects
JavaScript的简单数据类型:数字、字符串、布尔值、null值和undefined值,其他所有值都是对象。数字、字符串、布尔值“貌似”对象,因为它们拥有方法,但是,它们是不可变的!数组、函数、正则表达式都是对象。
对象是,属性的,容器。每个属性,都有名字和值。属性的名字,可以是包含,空字符串,在内的,任何字符串!属性的值,是可以除undefined值之外的任何值。
JavaScript里的对象是无类型(class-free),它对新属性的名字和值,没有限制。对象,可以包含,对象!这样可以容易地表示成树状或图形结构。
JavaScript包含一种,原型链的特性,允许对象继承另一个对象的属性!正确用之,可减少对象初始化时消耗的时间和内存。
对象字面量 Object Literals
一个对象字面量,就是包围在一对,花括号中的,零或多个“名/值”对。对象字面量可以出现在任何允许表达式出现的地方。
1 <!DOCTYPE html> 2 <html lang="en"> 3 <head> 4 <meta charset="UTF-8"> 5 <title>testObject1</title> 6 7 </head> 8 <body> 9 10 </body> 11 </html> 12 <script type="text/javascript"> 13 //属性名,是可以包含,空字符串在内的,任何字符串! 14 var empty_object = {}; 15 //对象,是属性的容器 16 var stooge = { 17 //JavaScript中标识符是不允许"-",但是允许下划线"_" 18 //对象字面量中,属性名,可以是标识符,也可以是字符串 19 //如果是合法的标识符,不用引号 20 //first-name不是合法的标识符,所以必须用引号!!名/值 21 // , 号分割多个 "名/值"对 22 "first-name": "Jerome", 23 //合法的标识符,由一个字母开头,选择地加上一个或多个字母或数字或下划线"_" 24 //first_name: "Jerome", //first_name 用不用引号,是可选的。 25 //属性名,不可以是,保留关键字 26 "last-name": "Howard" 27 }; 28 //对象是可以嵌套的! 29 var flight = { 30 airline: "Oceanic", 31 number : 815, 32 //属性的值,可以从,包括另一个对象字面量在内的,任意表达式中获得 33 departure: { 34 IATA: "SYD", 35 time: "2004-09-22 14:55", 36 city: "Sydney" 37 }, 38 arrival: { 39 IATA:"LAX", 40 time: "2004-09-23 10:42", 41 city: "Los Angeles" 42 } 43 44 45 }; 46 //检索对象里的值 47 //检索对象里包含的值,可以用在[]后缀中加,括住字符串表达式的方式。 48 //此处,first-name不是合法的标识符,采用了[] 49 console.log(stooge["first-name"]); //"Jerome" 50 // console.log(stooge.first-name); 51 //如果属性名是一个字符串字面量,而且是合法的标识符。优先使用 . 表示法 52 console.log(flight.number);// 815 53 console.log(flight.departure);//Objec {IATA: "SYD",time: "2004-09-22",city: "Sydney"} 54 console.log(flight.departure.city); //"Sydeny" 55 56 //检索一个不存在的成员属性的值,将返回undefined 57 //undefined是,经过了,原型链检索,不存在返回的值。 58 //一个对象,有它的原型对象,并继承原型对象的属性值,当检索该对象不存在的属性时,则向上检索它的原型对象, 59 //当原型对象没有的情况,会继续向原型对象的 原型对象检索,直到Object.prototype当完全不存在原型链中,即undefined 60 61 console.log(stooge["middel-name"]); // undefined 62 console.log(flight.status);//undefined 63 // 用 || 填充默认值 64 var middle = stooge["middle-name"] || "(none)"; 65 var status = flight.status || "unknow"; 66 console.log(middle,status);// (none) "unknow" 67 //尝试从undefined的成员属性中,取值,会导致TypeError,可以通过&& 避免错误 68 console.log(flight.equiment);// undefined 69 // console.log(flight.equiment.model);// throw "TypeError" 70 console.log(flight.equiment && flight.equiment.model); 71 //更新 72 //属性名已经存在对象里,那么属性的值会被替换 73 stooge["first-name"] = "Jack"; 74 console.log(stooge["first-name"]);//"Jack" 75 //对象之前没有的属性,会被扩充到对象里 76 stooge["middle-name"] = "Lester"; 77 stooge.nickname = "Curly"; 78 flight.equiment = { 79 model: "Boeing 777" 80 }; 81 console.log(stooge.nickname);//Curly 82 console.log(flight.equiment);//Object ...... 83 console.log(flight.equiment.model);//"Boeing 777" 84 //引用传递 85 //对象是通过引用来传递,不会被复制!! 86 var x = stooge; 87 console.log(x.nickname);//"Curly" 88 var nick = stooge.nickname; 89 console.log(nick);//Curly 90 //x 和 stooge,是指向同一个对象,的,引用!所以nick值为"Curly" 91 x.nickname ="Tom"; 92 //此处,通过同一对象的另一个引用,修改了,原对象中的nickname属性值! 93 console.log(stooge.nickname);//"Tom" 94 95 96 </script>
JavaScript语言精粹1字符串,对象字面量
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。