JavaScript

1. JS分三个部分:
  • ECMAScript标准—基础的语法
  • DOM Document Object Model 文档对象模型
  • BOM Browser Object Model 浏览器对象模型
2. 什么是JS?
  • 是一门脚本语言
  • 是一门解释性语言
  • 是一门弱类型语言
  • 是一门基于对象的语言
  • 是一门动态类型的语言
3. 动态页面:页面由html+css+Js构成
4. js最初的目的
  • 早期,绝大多数因特网用户都使用网速仅为28.8kbit/s的“猫”(调制解调器)上网,但网页的大小和复杂性却不断增加。在js问世之前,用户必须把表单数据发送到服务器才能确定用户的填写情况。
  • 为完成简单的表单在验证而频繁地与服务器交换数据只会增加用户的负担,想象一下:用户填写一个表单,单击“提交按钮”,然后等待30分钟,最终服务器返回信息说必填字段没有填好,估计用户砸电脑的心都有了。
  • 当时的网景公司决定着手开发一门客户端语言,用来处理这种简单的验证,这时候Brendan Eich 承担了这想任务,这个哥们发明js只用了两周的时间,当然问题也有很多。
  • 不过经过不断的发展改进,现在的js功能十分强大,能做特效,游戏,移动端,服务端等。
5. 编程思想:
  • 面向过程:所有的事情都是亲力亲为,注重的是过程
  • 面向对象:提出需求,找对象,对象解决,注重的是结果
  • js不是一门面向对象的语言,是基于对象的语言,js来模拟面向对象
  • 面向对象的特性:封装,继承,多态,(抽象性)
  • 封装:就是包装,把一些重用的内容进行包装,在需要的时候,直接使用
  • 把一个值,存放在一个变量中,把一些重用的代码放在函数中,把好多相同功能的函数放在一个对象中,把好多功能的对象,放在一个文件中.
    #####5. 网页,网站,应用程序:
  • 网页:单独的一个页面
  • 网站:一些相关页面组合到一起
  • 应用程序: 可以和用户产生交互,并实现某种功能

#####6. JavaScript现在的意义(应用场景)
JavaScript 发展到现在几乎无所不能。

  • 网页特效
  • 服务端开发(Node.js)
  • 命令行工具(Node.js)
  • 桌面程序(Electron)
  • App(Cordova)
  • 控制硬件-物联网(Ruff)
  • 游戏开发(cocos2d-js)
7. JavaScript的书写位置
  • 写在行内
  <input type="button" value="按钮" onclick="alert('Hello World')" />
  • 写在script标签中
    <head>
      <script> alert('Hello World!'); </script>
    </head>
  • 写在外部js文件中,在页面引入
<script src="main.js"></script>
  • 注意点
    引用外部js文件的script标签中不可以写JavaScript代码
8.js代码需要注意的问题
  • 在一对script的标签中有错误的js代码,那么该错误的代码后面的js代码不会执行
  • 如果第一对的script标签中有错误,不会影响后面的script标签中的js代码执行
  • script的标签中可以写什么内容 type="text/javascript"是标准写法或者写language="JavaScript"都可以,但是,目前在我们的html页面中,type和language都可以省略,原因:html是遵循h5的标准
  • 有可能会出现这种情况:script标签中可能同时出现type和language的写法.language的写法在php中比较常见。这两个都写是为了兼顾浏览器,有些浏览器可能写type不会出错,有些浏览器可能写language不会出错,所以两个都写上就可以保证浏览器在解析时不会报错。当然现在因为都是遵循h5的标准,所以两个都不写也是可以的。因为在html文件的最上面有 的声明。
  • script标签在页面中可以出现多对
  • script标签一般是放在body的标签的最后的,有的时候会在head标签中,目前讲课的时候都在body标签的后面(body中的最后)
  • 如果script标签是引入外部js文件的作用,那么这对标签中不要写任何的js代码,如果要写,重新写一对script标签,里面写代码
  • 在webstorm中利用ctrl+alt+L进行格式化代码
  • 多态:同一个行为,针对不同的对象,产生了不同的效果
    #####9. js中的所有数字都是浮点型的
  • 有一个地方需要和c语言中区分开,那就是整除 / .
C 5 / 2 = 2
JS 5 / 2 = 2.5
  • % 计算第一个操作数对第二个操作数的模,求余运算也叫做模运算,模就是余数。也就是计算第一个操作数除以第二个操作数的余数。结果和第一个操作数的符号保持一致
5%2=1 -5%2=-1
-5%-2=-1 -5/-2=-2.5
10. js中对象的比较是引用的比较而不是值的比较
  • 对象和本身是相等的,但和其它任何对象都是不相等的。如果两个对象有相同的属性,并且相应属性的值也完全一样那么这两个对象也是不相等的。相应位置的数组元素是相等的两个数组也是不相等的。例如,a引用一个对象,b也引用这个对象,那么a == b就是true。如果a引用一个对象,b引用一个和它内容完全一样的对象,a==b是false。我的理解就是对象的比较是地址的比较,两个对象不可能地址是相同的,故它们永远也不可能相等。
  • "=== " 比较过程中没有类型转换,“== ”比较过程中有类型转换
11. js中易混知识点总结
  • 在try/catch/finally语句中,三个关键字后面的花括号不能省略。
  • 关键字catch后会跟随一对圆括号。圆括号内是一个标识符。这个表示符和参数很像。当捕获到异常时,把和这个异常相关的值(比如error对象)赋值给这个参数。和普通的变量不同,这条catch子句中的标识符具有块级作用域,它只在语句块内有定义。
12. for循环和while循环是否完全一致如果不是请举例
  • 不完全一致,比如continue语句在两个循环中就有区别,while循环直接进入下一轮的条件判断,但是for循环中首先要计算括号中的第三个表达式(通常是increment表达式)然后再判断循环条件。

更新中…
本人是小白,如有错误欢迎指正