H5C3-JS day02

1:

如果页面中包含框架,那么每个框架都拥有自己的window对象.

考察的是JavaScript中浏览器的Window对象。
Window 对象表示浏览器中打开的窗口,通过Window对象的属性,比如closed属性检索窗口是否已被关闭。所以A正确。
window对象的属性包含内容:所以B正确。
如果文档包含框架(<frame> 或 <iframe> 标签),浏览器会为 HTML 文档创建一个 window 对象,并为每个框架创建一个额外的 window 对象。所以C不正确,D正确。
 
2:
html5中没有getContent()和getCanvas方法
调用canvas对象的getContext()方法来获取绘图环境
3;
A:<a> 标签是行内元素,不可以嵌套块级元素 <p>
B: <button> 是行内块元素,可以嵌套行内元素。但是,不推荐嵌套 <a> 元素!!!
   在比较多的 UI 库中,都是 <a> 元素嵌套 <button> 元素的。(自己试一下就知道区别了)
D:<dl>、<dt>、<dd> 、<h>这些 标题标签 不推荐嵌套块级元素
4:
不可继承的:display、margin、border、padding、background、height、min-height、max- height、width、min-width、max-width、overflow、position、left、right、top、 bottom、z-index、float、clear、table-layout、vertical-align、page-break-after、 page-bread-before和unicode-bidi。

所有元素可继承:visibility和cursor。

内联元素可继承:letter-spacing、word-spacing、white-space、line-height、color、font、 font-family、font-size、font-style、font-variant、font-weight、text- decoration、text-transform、direction。

块状元素可继承:text-indent和text-align。

列表元素可继承:list-style、list-style-type、list-style-position、list-style-image。

表格元素可继承:border-collapse。
 
ps:这谁记得住,考这个的大厂的出题人就是脑瘫!!!
 
5:
背景定位属性background-position 
若只有一个取值,则其第二个取值默认为50%
6;
键与值都需要用引号括起来  “键”
键值之间用冒号   “键”:“值”
键值对之间用逗号隔开     “键”:“值”  , “键”:“值”
 
7:

 8:

只要 协议 、 域名 、 端口 有任何一个 不同, 都被当作是 不同 的域。

9:

Ajax技术核心就是XMLHttpRequest对象。
Ajax技术的工作原理:可以分成3步
1.创建Ajax对象:var xhr = new XMLHttpRequest();
2.xhr 发送请求:xhr.open('get','test.html','true');
                          xhr.send();
3.xhr获取响应:
                          xhr.onreadystatechange = function(){
                                   if(xhr.readystate == 4){//请求的状态码
                                                       /*
                                                                   0:请求还没有建立(open执行前)
                                                                   1:请求建立了还没发送(执行了open)
                                                                    2:请求正式发送(执行了send)
                                                                   3:请求已受理,有部分数据可以用,但还没有处理完成
                                                                 4:请求完全处理完成
                                                           */
                                         alert(xhr.responseText);//返回的数据
                                     }
                             }
可以看到,send()前是open()
 
10:

 11:

javascript中实现跨域的方式总结

  • 第一种方式:jsonp请求;jsonp的原理是利用<script>标签的跨域特性,可以不受限制地从其他域中加载资源,类似的标签还有<img>.
  • 第二种方式:document.domain;这种方式用在主域名相同子域名不同的跨域访问中
  • 第三种方式:window.name;window的name属性有个特征:在一个窗口(window)的生命周期内,窗口载入的所有的页面都是共享一个window.name的,每个页面对window.name都有读写的权限,window.name是持久存在一个窗口载入过的所有页面中的,并不会因新页面的载入而进行重置。
  • 第四种方式:window.postMessage;window.postMessages是html5中实现跨域访问的一种新方式,可以使用它来向其它的window对象发送消息,无论这个window对象是属于同源或不同源。
  • 第五种方式:CORS;CORS背后的基本思想,就是使用自定义的HTTP头部让浏览器与服务器进行沟通,从而决定请求或响应是应该成功还是应该失败。
  • 第六种方式:Web Sockets;web sockets原理:在JS创建了web socket之后,会有一个HTTP请求发送到浏览器以发起连接。取得服务器响应后,建立的连接会使用HTTP升级从HTTP协议交换为web sockt协议。

12:

with try-catch eval可以改变作用域链,红皮书有这个知识点

 
13:

 14;

+的处理机制是:新建一个临时字符串,将新字符串赋值为a+b,然后返回这个临新字符串并同时销毁原始字符串,所以字符串连接效率较低。所以用Array.join()不会新建临时字符串效率更高。

15:

  • JS 中值的类型分为原始值类型和对象类型。原始值类型包括 number, string, boolean, null 和 undefined;对象类型即 object。首先原始值类型它就不是对象。
  • 另外,要注意 'hello' 和 new String('hello') 的区别,前者是字符串字面值,属于原始类型,而后者是对象。用 typeof 运算符返回的值也是完全不一样的:
1
2
typeof 'hello';  // 'string'
typeof new String('hello');  // 'object'
  • 之所以很多人分不清字符串字面值和 String 对象,归根结底就是 JS 的语法对你们太过纵容了。当执行 'hello'.length 时,发现可以意料之中的返回 5,你们就觉得 'hello' 就是 String 对象,不然它怎么会有 String 对象的属性。其实,这是由于 JS 在执行到这条语句的时候,内部将 'hello' 包装成了一个 String 对象,执行完后,再把这个对象丢弃了,这种语法叫做 “装箱”,在其他面向对象语言里也有(如 C#)。不要认为 JS 帮你装箱了,你就可以在写代码的时候不分箱里箱外了!

16:

JS中String与string的区别

String是构造函数,而"string"是变量的一种类型

typeof String     // "function"
typeof string     // "undefined"
typeof "string"   // "string"


String('xxx')  返回的是一个字符串。

原文地址:https://www.cnblogs.com/zhangjiabing/p/13217423.html