js高级编程(第八章部分总结),总结:

1.全局对象window

对于去哪聚对象window,一般在定义变量和方法时都会省略不写。在看书的中,看到定义全局变量和直接在window上定义属相还是有一点差别的。其主要差别就是对于delete操作符的使用,对于全局变量不会生效,直接返回false,对于widow对象上,直接返回true,即正确删除了window对象的属性。这是因为用var定义的变量会为window对象的configurable属性设置为false,即不能通过delete删除了。

这个delete操作符在对new Set()对象创建实例中也有用到。

var color = "red";
window.age = 29;
//  使用delete操作符
delete window.color;  // false
delete window.age; // true,正确删除
console.log(widnow.age); // "red"
console.log(window.age); // undefined
2.iframe和frame的差异

看到书中用的是frameSet(框架集)进行在页面中显示其它的网页内容。而这个标签在H5中已经不再推荐,取而代之的是iframe标签。基于以下列举出来的两者的差异,frame只是一种用在全页面的控件,局限性很大。而iframe可以内嵌在页面中的,是一个局部控件,灵活性很强。

针对以下差异性,我会抛弃frameSet和frame,而去使用iframe。

(有一种情形,个人认为使用frameSet还是很方便的,比如书中左边是目录,右边是正文,在拖动正文时,左边的目录又不想跟着移动,这是一个很不错的布局吧)

frameSet和frame iframe
frame不能脱离frameSet单独使用,而且不能放在body标签中。 iframe一般单独使用,不会再嵌在frameSet标签中,这样的话必须使用在body中,单独使用可以随便布局。
frame的高度只能通过frameSet控制 iframe可以通过height和width属性自己控制,不能通过frameSet控制
frame 不能放在表格中 iframe 可以放到表格里面使用,更加灵活
3.浏览器的窗口的innerWidth、innerHeight和outerWidth、outerHeight

之前总是分不清这两个属性的区别,今天看了书和自己在浏览器上跑了一下,特此记录一下。

  • innerWidth = width + padding

  • innerHeight = height + padding

  • outerWidth = width + padding + border

  • outerHeight = height + padding + border

    注:在jQuery中由于outerHeight()方法中可以动态的传递布尔参数,所以在操作outerWidth和outerHeight时,还可以对margin进行选择性操作。

4.浏览器打开窗口open()方法

首先说一下为什么总结这个方法,这是因为在上周业务代码中使用到了这个方法,既然在业务中用到了,我认为就有必要对自己扩展这一部分了。

这个方法有四个参数,分别是url地址,目标名称,配置参数的字符串(这个字符串中不允许出现布尔值,键值对是以"="连接)和新页面是否取代浏览器历史记录中当前加载页面的布尔值。

var newWindow = window.open("https://www.baodu.com", "_blank", "height=200,top=30", true);  // 返回一个新对象
// 关闭这个新建的窗口使用close()方法
newWindow.close();
// 额外看到的一个不常用的属性closed,判断新打开的窗口是否关闭了,返回一个布尔值
console.log(newWindow.closed);  // true

你可能感兴趣的:(js高级编程(第八章部分总结),总结:)