JS第一篇
2017-09-16 本文已影响0人
起风了_点点
1. Javascript中,有一个函数,执行对象查找时,永远不会去查找原型,这个函数是?
问题解析:执行对象查找,永远不会去查找原型,意思也就是只会在对象本身查找。所以可以得出这个函数就是 hasOwnProperty():用于检测一个对象自身(不包括原型链)是否具有指定名称的属性,如果有,返回true,否则返回false。
语法:object.hasOwnProperty( propertyName )
2. JSON 的了解?
- (javascript object notation)全称是javascript对象表示法,是一种数据交换的文本格式,是一种数据交换的文本格式,
- 在 JS 语言中,一切都是对象。因此,任何支持的类型都可以通过 JSON字符串表示法来表示
- JSON.stringify()方法:用于将一个值转为字符串;JSON.parse()方法:JSON.parse
- 区分JSON字符串和JSON对象:
- JSON字符串:"{ "firstName":"John" , "lastName":"Doe" }"
- JSON对象:{ "firstName":"John" , "lastName":"Doe" }
可以看出区别就是是否加引号(或者双引号)
- 为什么使用 JSON?
对于 AJAX 应用程序来说,JSON 比 XML 更快更易使用
3. js延迟加载的方式有哪些?
- 1)
script
标签中加入如defer
属性
- 定义:脚本在页面解析完后执行。
<script type="text/javascript" defer="defer"></script>
- 如果脚本不会改变文档的内容,可将
defer
属性加入到 <script> 标签中,以便加快处理文档的速度。
- 2)
script
标签中加入如async
属性
- 定义:脚本相对于页面的其余部分异步地执行(当页面继续进行解析时,脚本将被执行)
<script type="text/javascript" src="demo_async.js" async="async"></script>
- 和
defer
的区别:async
只适用于外部脚本(即只有在使用src属性时)。- 缺点:不能控制加载的顺序
- 3)来自Google帮助页面的推荐方案(动态创建DOM方式):
//这些代码应被放置在</body>标签前(接近HTML文件底部)
<script type="text/javascript">
function downloadJSAtOnload() {
var element = document.createElement("script");
element.src = "defer.js";
document.body.appendChild(element);
}
if (window.addEventListener)
window.addEventListener("load", downloadJSAtOnload, false);
else if (window.attachEvent)
window.attachEvent("onload", downloadJSAtOnload);
else window.onload = downloadJSAtOnload;
</script>
这段代码意思是等到整个文档加载完后,再加载外部文件“defer.js”。
使用此段代码的步骤:
1).复制上面代码
2).粘贴代码到HTML的标签前 (靠近HTML文件底部)
3).修改“defer.js”为你的外部JS文件名
4).确保你文件路径是正确的。例如:如果你仅输入“defer.js”,那么“defer.js”文件一定与HTML文件在同一文件夹下。
- 注意:这段代码直到文档加载完才会加载指定的外部js文件。因此,不应该把那些页面正常加载需要依赖的javascript代码放在这里。而应该将JavaScript代码分成两组。一组是因页面需要而立即加载的javascript代码,另外一组是在页面加载后进行操作的javascript代码(例如添加click事件或其他东西)。这些需等到页面加载后再执行的JavaScript代码,应放在一个外部文件,然后再引进来。