1.无序的数据集合
2.键值对的集合
使用Object.keys(obj) 可以得到obj的所有key
如何用变量做属性名
delete obj.name 或者 delete obj['name']
请区分属性值为undefined 和不含属性名
不含属性名(查看是否含有属性名方法:'XXX' in obj === false)
含有属性名,但是值为undefined
"xxx" in obj &&obj.xxx ===undefined
查看自身所有属性
Object.keys(obj) //查看所有的key
Object.values(obj) //所有的value
Object.entries(obj) //key和value值 以数组形式查看
查看自身+共有属性
console.dir(obj) 推荐用法
或者自己依次用Object.keys打印出obj.__proto__(不推荐,因为它里面的共有属性比较多)
判断一个属性是自身的还是共有的
obj.hasOwnProperty('toString')
总结:'name' in obj 和obj.hasOwnProperty('name')的区别:前者为查看是否有属性名 后者是判断一个属性是自身属性还是共有属性
修改属性 var obj={name:'frank' ,age:18} 修改属性直接obj.name重新赋值 写法 obj.name = 'lulu'
添加属性 obj.wuwuwu = 'wuwuwu'
批量添加属性 Object.assign(obj,{p1:1,p2:2,p3:3,p4:4})
比如上面的obj 我们可以通过修改它的obj.__proto__来修改原型 但是这种方法不推荐 一般推荐用另一种 window.Object.prototype
window.Object.prototype=obj.__proto__ //true
对象的原型图
知识点:
面试题(一):
面试题(二):
第一种:方法调用
第二种:函数调用,里面的this指向的是window
第三种:构造函数调用:this指向调用它的对象
第四种:上下文调用模式,this指向谁?指向的是传入的对象
let var const 函数作用域 {}
1、在函数里面创建一个对象obj
2、将函数里面的this指向创建的那个对象obj
3、返回这个obj对象
闭包的概念:
闭包的使用场景:
闭包的问题:让变量得不到释放,增加内存使用率
给DOM 添加点击事件:
区别:onclick 会覆盖相同的事件,addEventListener会逐一的触发
DOM 事件三要素: 事件源, 事件类型, 事件处理程序
事件流程: 冒泡,捕获
ES5的继承
1、构造函数实现继承
2、借助原型是实现继承
3、组合方式实现继承
ES6的继承
深入学习可参考: https://juejin.im/post/5daeefc8e51d4524f007fb15?utm_source=gold_browser_extension#heading-22
javascript 里面的 window.onload是什么意思? onload 事件会在页面或影象载入完成后立即发生。
window.onload事件会在页面载入完成后触发。
示例:
<!doctype ><><head> <title>window.onload示例</title> <script type=text/javascript> window.onload = function(){alert('页面载入完成') }alert('页面尚未载入完成,页面内容不显示') </script></head><body>页面内容</body></>
开启该页面会首先d出“页面尚未载入完成,页面内容不显示”提示框,此时页面时空白的(由于alert会阻塞页面的执行绪,所以页面不会继续载入,直到点选确定后才会继续执行),点选确定后,会d出提示“页面载入完成”,此时可以看到页面内容四个字,页面已载入完成。
window.onload是什么意思
视窗载入
window.onload=draw是什么意思
程式允许到这一步时 canvas有个,draw函式,程式执行的顺序是先执行constructorL(),再呼叫Draw()进行图形的渲染。看你基础好像不太行,需要学习资料不
if (typeof window.onload != 'function') 中type of是什么意思??
typeof 运算子
返回一个用来表示表示式的资料型别的字串。
typeof[()expression[]]
expression 引数是需要查询型别资讯的任意表达式。
说明
typeof 运算子把型别资讯当作字串返回。typeof 返回值有六种可能: "number," "string," "boolean," "object," "function," 和 "undefined."
typeof 语法中的圆括号是可选项。
要求
版本 1
经常会在js里用到阵列,比如 多个名字相同的input, 若是动态生成的, 提交时就需要判断其是否是阵列.
if(document.mylist.length != "undefined" ) {} 这个用法有误.
正确的是 if( type(document.mylist.length) != "undefined" ) {} 或 if( !isNaN(document.mylist.length) ) {}
typeof的运算数未定义,返回的就是 "undefined".
运算数为数字 typeof(x) = "number"
字串 typeof(x) = "string"
布林值 typeof(x) = "boolean"
物件,阵列和null typeof(x) = "object"
函式 typeof(x) = "function"
javascript里面的++是什么意思?
自加1
一般有在前和在后之分
如
var i=1,j=1,s=0
s=i++ * 2i=2,s=2,i先进行乘法运算,再+1
s=++j * 2j=2,s=4,j先+1,再进行乘法运算
window.onload=function() :这句在js中是什么意思
一般来说比如有一个alt(){alter("Wele!)}函式,想在页面一开启就呼叫alt()函式d框提示欢迎,我们可以写成 windows.onload=alt;
而写成windows.onload=functon() 这完全点应该是windows.onload=function(){方法体},
这里应该是一个空的函式,表示初始化不做任何 *** 作,
JavaScript里面的“类”是什么意思?
JavaScript 是面向物件的语言,引用资料型别都是物件,包括函式也是物件,同时还可以通过 Object 物件自定义物件。
但是,和其他面向物件语言(如 Java 等高阶语言)比,也有很大差异,JS 中没有类或介面的概念,即不能直接定义抽象的类,也不能直接实现继承。不过,为了程式设计的方便,我们可以在 JS 中模拟类和继承的行为。
建立物件例项或类(虽然没有类的概念,但是可以把用于建立新物件的物件看作类),可以通过建构函式来实现,建构函式就是具有一系列属性和行为作为函式体的函式,可以通过函式引数传入值。它就相当于 Java 中类的建构函式,需要时可以通过 var instanceObj = new ConstructorFunc(para1,para2,...) 来建立物件(例项)。
JS 的物件中还有一个重要概念,即原型。每个物件都有原型,原型也是一个物件,可以看做是建构函式的映像,是建立例项的模型。物件(类)的属性 prototype 即是对原型物件的引用,建立例项后,也有属性 __proto__ 指向原型物件,但该属性是隐含的。
由于不断创造新物件(例项),一级一级的传递原型物件,即可构成原型链。通过原型链,即可实现继承。首先将父类物件的例项给子类的原型 ChildCons.prototype = new ParentCons(),再在子类建构函式中呼叫父类建构函式将继承的属性初始化。继承的变通方法还有很多,可以参考一些资料。
JavaScript里面的mvc是什么意思?
跟 spring mvc一个道理,m指的是model ,v指的是 view ,对应前端,c指的是 control
JavaScript里面的prototype是什么意思?
prototype是原型的意思,也就是JS物件的原型,一般用来扩充套件原型的时候用.
prototype是一个属性,所有的函式都有,这个属性引用了一个物件.prototype物件是实现面向物件的一个重要机制.每个函式都是一个物件,它们对应的类就是function,每个函式物件都具有一个子物件prototype,prototype表示了该函式的原型.
JavaScript里面的api是什么意思??
在我简单的理解就是。
API是提供给不同语言的一个介面,也就是对应的函式里面提供了相应的方法。我们只要用js的语法去呼叫想要的功能就可以。例如js里面的BOM有screen的方法,他就是浏览器提供给我们的介面,能够对浏览器进行 *** 作。
您可以去百度JS的api有很多的功能,我们要记住他们是很难的,只要知道有这样的东西,到时候直接去网上找呼叫的方法就可以了,例如有百度地图的API。呼叫的话就可以实现地图功能。而不是我们自己去写一个地图的功能。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)