JavaScript因为互联网而生,紧随着浏览器的出现而问世。回顾它的历史,就要从浏览器的历史讲起。
javascript 基本语法:借鉴C语言和Java语言。 数据结构:借鉴Java语言,包括将值分成原始值和对象两大类。 函数的用法:借鉴Scheme语言和Awk语言,将函数当作第一等公民,并引入闭包。 原型继承模型:借鉴Self语言(Smalltalk的一种变种)。 正则表达式:借鉴Perl语言。 字符串和数组处理:借鉴Python语言。
1) 简单性:它是基于Java基本语句和控制流之上的简单而紧凑的设计,但是相比Java来说,它的变量类型是采用弱类型,未采用严格的数据类型。
var
2) 安全性: JS不允许访问本地硬盘,不能将数据存入到服务器上,不允许对网络文档进行修改和删除,只能通过浏览器实现信息浏览或动态交互,从而有效的防止数据的丢失。
3) 动态性: JS可以直接对用户或客户输入做出响应,无须经过Web程序。它对用户的响应采用以事件驱动的方式进行,即由某种操作动作引起相应的事件响应,如:点击鼠标、移动窗口、选择菜单等。
4) 跨平台性: JS依赖于浏览器本身,与操作环境无关。只要能运行浏览器的计算机,并安装了支持JS的浏览器就可以正确执行,从而实现了“编写一次,走遍天下”的梦想。
JavaScript主要有三部分组成:
1、内部添加: 可以在HTML页面的任何地方添加script标签(只要浏览器可以读取到),在标签内部添加我们的JS代码。例如:
```javascript
说明:type属性用来指定脚本的类型。type的值可选:text/javascript、application/javascript、text/vbscript、text/jscript、text/x-javascript。如果没有设置type属性会默认为text/javascript 区别: type="text/javascript",传统的写法,浏览器支持较好。 type="application/javascript",标准的写法,但不是每种浏览器都支持。 type="text/x-javascript":x前缀表示这是实验性的,不是标准的类型。 其中x就是experiment的简写,代表实验阶段。 我们以后的代码统一用:type="text/javascript"
注意:这html页面中,不仅可以写JavaScript相关代码,也可以写入其他脚本或模板,都是通过type属性来指定的。 ```
2、 链接外部js文件。 为了代码的复用和方便维护,实际开发中会把js代码放入单独的文件中,然后在HTML文件中用script标签链接引入。例如:
```javascript
说明: A:src表示要链接的文件的地址。这个地址可以是一个文件,也可以是一个url地址。 B:引入外部js文件的时候,不要再在标签内添加js代码,即使添加了也不会执行。 C:虽然这个时候不再script标签中添加js代码,但是也不能把script标签改成单标签。例如下面的形式是错误的。
扩展:链接外部js文件可以设置async属性或defer属性
分别解释下当浏览器碰到 script 脚本的时候 1: 没有 defer 或 async,浏览器会立即加载并执行指定的脚本,“立即”指的是在渲染该 script 标签之下的文档元素之前,也就是说不等待后续载入的文档元素,读到就加载并执行。 2: 有 async,加载和渲染后续文档元素的过程将和 script.js 的加载与执行并行进行(异步)。(暂时理解:脚本引入顺序不固定) 3: 有 defer,加载后续文档元素的过程将和 script.js 的加载并行进行(异步),但是 script.js 的执行要在所有元素解析完成之后,DOMContentLoaded 事件触发之前完成。(暂时理解:脚本引入顺序固定)
总结:从实用角度来说呢,首先把所有脚本都丢到 之前是最佳实践,因为对于旧浏览器来说这是唯一的优化选择,此法可保证非脚本的其他一切元素能够以最快的速度得到加载和解析。 ```
3、**在HTML标签中: ** 作为某个元素的事件属性值或者是超链接href属性值。
javascript 点我啊
JavaScript共提供了2中注释:单行注释和多行注释。
JavaScript的执行顺序:按照HTML文件中出现的顺序依次执行
JavaScript严格区分大小写,大小写敏感 a A p P
警告框:alert(xx);
警告框经常用于确保用户可以得到某些信息。
警告框出现后,用户需要点击确定按钮才能继续进行操作。
```javascript
```
确认框:confirm(xx);
输入框: prompt(xx,默认值);
在页面上输出: document.write("xxx")
向控制台输出结果(以后每天都要使用的调试程序的方式):console.log("xxx") ```javascript
```
直接写入到HTML页面中
1、关键字: 在js中具有特殊含义的单词。 所有的关键字都是小写字母
2、保留字: 现在 js 还没有使用,但是留着以后扩展用。
所谓 标识符,就是指变量、函数、属性的名字,或者函数的参数名字。
规则(必须遵守):
由字母、下划线(_)、美元符号($)、数字组成。
第一个字符不能是数字。
JavaScript是区分大小写的。即 a和A是完全两个不同的标识符。
不能是关键字和保留子。
惯例(不是必须遵守):ECMAScript 标识符采用驼峰大小写格式,也就是第一个字母小写,剩下的每个单词的首字母大写,
例如:
```javascript firstSecond myCar doSomethingImportant woDeChe 注意:构造函数(将来会学习)的首字母一般使用大写字母开头。
练习:以下哪些不是合法标识符? abcd a_B3 $sop* ¥abc $ab 4ab ```
JavaScript的变量用于保存值或表达式 ,顾名思义,变量就是它的值是可以改变。
JavaScript中变量是弱类型或者松散类型,所谓松散类型是指在同一个变量中可以存储任何类型的数据。换句话说,一个变量仅仅是一个占位符而已,为了后面的代码访问比较方便。
JavaScript的变量声明统一用var关键字来声明。例如:
javaScript var num; //声明了一个变量,这个变量的名字叫num。
javascript var num; num = 5; //把数字5赋值给变量num。 注意:这里的 = 不是等,应该这样读:把5赋值给变量num,不应该读做num等5。
javascript var num = 5; //声明一个变量num,同时给这个变量赋值为5。
同一个变量,可以声明多次,而且后面的声明如果没有赋值的话,就不会让前面已经赋的值丢失。例如:
javascript var num = 10; var num; //重写定义,没有任何的副作用,不会导致前面的值丢失。(注意:但尽量不要这么写) console.log(num); //打印:10 num = 20; //把变量num的值再次赋值为20,则会覆盖原来的值。这是变量最大的特点:变 console.log(num); //所以此处打印20
同一个变量如果声明多次,但后来声明的重复变量有值的话,会覆盖掉前面的值。例如:
javascript var num = 10; var num = 20; //在次声明相同名字的变量,但这次是有值,则会覆盖掉之前的值 console.log(num); //打印20
声明变量如果没有赋值就打印或将来用来做判断的话,这个变量则是undefined
javascript var num; console.log(num); //undefined 因为没有赋值就打印,undefined是我们JS中的一种数据类型。表示变量未赋值即使用。
如果使用一个为声明的变量会报错
javascript console.log(num); //会爆一个非常经典的错误 xxx is not defined
可以在同一行同时声明多个变量,即: 使用一个var声明多个变量,这多个变量之间用逗号(英文下 , )隔开。当然声明的时候可以根据需要对变量进行赋值初始化。例如:
javascript var num1, num2, mun3 = 40, num4; //使用var关键字同时声明4个变量,而且num3的值初始化为40。