@Wangww0925
2019-08-07T07:53:29.000000Z
字数 4848
阅读 284
js-笔记
对象 Object: 一切皆对象
对象是一种数据类型
对象是描述一个具体的事物
对象可以看做属性的无序集合
引号可以省略
以 关键字 或 - 来命名不能省略引号,如:'if'、'skill-2';不推荐使用关键字
,逗号隔开
最后一个值不需要用逗号
var obj = {name:'www','if':10,'skill-2':'css'}console.log(obj.name); // 返回 wwwconsole.log(obj.if); // 返回 10,但是不推荐使用关键字// console.log(obj.skill-2); // 返回 NaN ,不能查询结果console.log(obj['skill-2']); // 返回 css
针对于前端来说,JS运行在浏览器上,浏览器就是JS的宿主
htmlElement(元素) comment(注释) text(文本) attribute(属性)
1. 创建一个空对象var obj1 = {};2. 创建一个对象,并赋值var obj2 = {name:'www',age:18,sex:'女'}3. 包含 数组、属性、方法 的对象var obj3 = {user:['html','css','js'],type:'post',test:function(){console.log('我是一个方法')}}
构造函数的名字: Object Array Number String ......
var obj4 = new Object(); // 创建空的对象
需要传入原型
1、 只有一个参数,不继承构造函数的方法和属性
function User(){this.name = 'www';this.age = 12;}var obj = Object.create(User.prototype);console.log(obj); // 返回 User {}console.log(obj.name); // 返回 undefined
2、 两个参数,参数二传入对象描述
function Info(){}var obj3 = Object.create(Info.prototype, {name:{value:'www'}})console.log(obj3); // 返回 Info {name: "www"}console.log(obj3.name); // 返回 www
var obj = {}obj.name = 'www'; // 使用. 添加属性// obj['name'] = 'www'; // 使用[] 添加属性// 添加方法obj.test = function(){console.log('I can play');}console.log(obj); // 返回 {name: "www", test: function(){}}
var obj = {}obj.name = 'abc';;obj.test = function(){console.log('I can look A movie');}console.log(obj); // 返回 {name: "abc", test: function(){}}
var obj = {name: "abc",test: function(){console.log('I can look A movie');}}console.log(obj.name); // 返回 abcconsole.log(obj['name']); // 返回 abcobj.test(); // 返回 I can look A movie
var obj = {age:99}var a = 'age';console.log(obj.a); // 返回 undefined,属性里面没有a属性console.log(obj[a]); // 返回 99,使用[]可以访问
var obj = {name:'www',age:18}delete obj.age; // 删除属性名为age的属性console.log(obj); // 返回 {name: "www"}
建议使用 in
var obj = {name:'www',age:18}console.log('name' in obj); // 返回 trueconsole.log('skill' in obj); // 返回 false
var obj = {name:'www',age:18}console.log(obj.skill); // 返回 undefinedif(obj.skill === undefined){console.log("不存在")}else{console.log("存在")}
var obj = {name:'www',age:18,skill:undefined}console.log(obj.skill); // 返回 undefinedconsole.log('skill' in obj); // 返回 true
var info = {name:'www',age:18,skill:'css'}for(var i in info){console.log(i + ':' + info[i]); // 返回 name:www age:18 skill:css}
var info = {name:'www',age:18,skill:'css'}var arr = Object.keys(info); // 将对象的属性名 方法名 放到一个数组中console.log(arr); // 返回 ["name", "age", "skill"]arr.reverse(); // 验证能不能使用数组的方法console.log(arr); // 返回 ["skill", "age", "name"] ,通过翻转证明了这是一个数组for(var j = 0; j < arr.length; j++){console.log( arr[j] + ':' + info[arr[j]]); // 返回 skill:css age:18 name:www}
var obj = {name:'www',age:18,say:function(){console.log(this.name + '今年' + this.age + '岁了'); //}}obj.say() // 返回 www今年18岁了,this是本对象
-- 作用域的顶端
-- 使用return之后,将当前对象变成全局对象
var name = 'abc';var obj = {name:'www',age:18,say:function(){return function(){console.log(this.name);}}}// obj.say() // 返回 函数 function(){ console.log(this.name); }obj.say()(); // 返回 abc
var name = 'abc';var obj = {name:'www',age:18,say:function(){var that = this; // this代表objreturn function(){console.log(that.username);}}}obj.say()(); // 返回 www
console.log(100 == 100); // 返回 trueconsole.log('abc' == 'abc'); // 返回 trueconsole.log([1,2,3] == [1,2,3]); // 返回 false
function info(name,age){this.name=name;this.age=age;this.test = function(){console.log('ceshi');}}var people1 = new info('www',18);console.log(people1); // 返回 {name: "www", age: 18}var people2 = new info('abc',12);console.log(people2); // 返回 {name: "abc", age: 12}console.log(people1.drink == people2.drink); // 返回 false,引用的地址不同
var arr = new Array();
var arr1 = new Array();var arr2 = new Array();var arr3 = new Array();
1. 直接创建字符串var str = 'abc';2. 通过构造函数创建字符串var str1 = new String('abc');console.log(str1); // 返回 String {0: "a", 1: "b", 2: "c", length: 3, [[PrimitiveValue]]: "abc"}3. str 和 str1 使用的时候结果是一样的console.log(str == str1); // 返回 trueconsole.log(str === str1); // 返回 false
var list = document.getElementsByTagName('li');for(var i in list){if(list.hasOwnProperty(i)){console.log(list[i]);}}
作者 wendy
2019 年 5月 23日