JavaScript复习笔记(一)

[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是解释型语言,解释型是指由预处理+执行两部分组成的,同时也是阻断式语言自己在做事情的时候不允许别人打扰。

对于

一般这个在外国的模板网站会比较经常看到, 但我们国内一般基本上不会看到, 包括大厂也比较少见

内嵌脚本和外部脚本优缺点

内嵌脚本优点就是速度快

在手机端编写的时候可以多用到内嵌脚本来减少与服务器之间的连接访问, 虽然连接访问不会慢,但是多了的情况下还是多少会影响速度的

外部脚本优点也有很多:

  1. 维护性会强一点

  2. 可以缓存, 如果不想要缓存就可以改个后缀名之类的, 名字相同的外部脚本文件只会下载一次

  3. 适应未来,

    通过外部脚本的javascript无需考虑到XHTML和hack问题

    hack就是兼容性问题

文档模式

分为混杂模式标准模式

混杂模式会让IE行为包含非标准特性

这两种模式主要影响的是css内容的呈现, 如果浏览器开头没有发现文档声明就默认开启混杂模式

html:4s + tab键

html:5 + tab键

会自动在文档开头写上文档模式例如:




    
    
    
    Document





比较少用到, 因为现代浏览器很少不用到javascript

用于浏览器不支持

你可能感兴趣的:(JavaScript复习笔记(一))