[TOC]
题外话:
其实我觉得能后通过自己感兴趣的事情给自己获取资源是一件很幸福的事情,这也是自己未来努力的方向吧也有人反对浏览器使用javascript,认为其不安全, 所以就禁用了javascript.
但其实我倒是觉得很历史倒退, 没有必要完全, 因为你可以看到其实浏览器大前端这一模块也是一个趋势, 而javascript就是一个最好的武器, 包括谷歌最近在开发的Fuchsia也打算在底层嵌入javascript, 所以我认为javascript在短时间内有可能成为趋势, 大前端的趋势还会攀升
申明
笔记来自《JavaScript高级程序设计》第三版, 内容扩展来自冰山工作室的录音进行参考学习
JavaScript复习笔记一
JavaScript其实开始的时候是为了处理表单字段而写的,为了和Java很像但是又不能一样就导致了有很多保留字和java很像的情况。
JavaScript是由三个部分组成的ECMAScript(欧洲计算机制造协会)
,DOM(文档对象)
,BOM(浏览器对象)
组成的
ECMAScript
由ECMA-262定义,提供核心语言功能
DOM
提供访问和操作网页内容的方法和接口
BOM
提供浏览器交互的方法和接口
用let替换var可以很好地解决闭包问题
例如闭包:
// var
for(var i = 0; i < 10; i++){
setTimeout(function(){
// 每次都是10
console.log("var; "+i);
},10);
}
// let
for(let i = 0; i < 10; i++){
setTimeout(function(){
// 0,1,2...9
console.log("let; "+i);
},10);
}
很好理解, 就是var是全局作用域, let声明只在作用域中有效
白话:
let我一定要等你 , 全局我先溜了
script元素
共有六个:
async
异步下载, 主要用于控制下载的,支队外部脚本文件有效, 但是一般不用
charset
主要用于解决乱码, 但是一般没有用到
defer
控制外部脚本延迟加载, 也一般不用, 因为其实有时候也是会失效的在老版本浏览器,虽然现在版本兼容已经Ok了
src
这个是最常用的, 不一定指向js类型, 其他外域文件也是ok的, 例如用到cdn加速的js也是可以的,但是我们跨域使用文件的时候要小心,一般不建议直接跨域吗,要不就找靠谱的大型CDN加速地址才可以,要不就下载到本地检查下安全性
type
定义类型, 一般不写没问题, 常见是text/javascript
也是默认值, 但是text/javascript和text/ecmascript也都不推荐使用了。需要了解的是服务器传送javascript文件的时候使用MIME类型是application/x-javascript
。mime类型修改通常只在动态js中才用到, 但是我们在对于服务器返回类型的时候还是要注意下MIME返回的类型设定,因为有时候设定成XHTML之类的就会对值产生影响。
计算机的同步异步和我们日常的不一样理解,计算机同步是指一个人顺序做一件事情,异步代表多个人同时做事情。
javascript的异步操作其实本质上也是属于同步,因为它异步的是浏览器上开启多线程异步,javascript本身是没有这样的功能的。
javascript是解释型语言,解释型是指由预处理+执行
两部分组成的,同时也是阻断式语言
自己在做事情的时候不允许别人打扰。
对于
一般这个在外国的模板网站会比较经常看到, 但我们国内一般基本上不会看到, 包括大厂也比较少见
内嵌脚本和外部脚本优缺点
内嵌脚本优点就是速度快
在手机端编写的时候可以多用到内嵌脚本来减少与服务器之间的连接访问, 虽然连接访问不会慢,但是多了的情况下还是多少会影响速度的
外部脚本优点也有很多:
维护性会强一点
可以缓存, 如果不想要缓存就可以改个后缀名之类的,
名字相同的外部脚本文件只会下载一次
-
适应未来,
通过外部脚本的javascript无需考虑到XHTML和hack问题
hack就是兼容性问题
文档模式
分为混杂模式
和标准模式
混杂模式会让IE行为包含非标准特性
这两种模式主要影响的是css内容的呈现, 如果浏览器开头没有发现文档声明就默认开启混杂模式
html:4s + tab键
html:5 + tab键
会自动在文档开头写上文档模式例如:
Document
比较少用到, 因为现代浏览器很少不用到javascript
用于浏览器不支持