一.什么是JavaScript
基于对象的、事件驱动的, 客户端脚本语言...和HTML、CSS一样运行在客户端浏览器中,被浏览器中的JavaScript引擎 解释运行
属于W3C规范中 内容、表现、行为 中的行为.. 作用:1. 用户交互
2. 表单验证
验证非空、验证是否为数字、邮箱、身份证号
3. 动态改变页面内容
4. 特效
5. 游戏
****************************永远的HelloWorld**************************在head中加入 script标签
<script type="text/javascript"> alert('Hello,JavaScript!!!'); </script> JavaScript是客户端脚本语言 和Java没有任何关系,只是发明JavaScript的人非常喜欢Java这门语言,所以命名时以JavaScript命名
alert("");//警告框
注意: 警告框是阻塞式的,只有用户单击了 确定以后 才会继续往下执行... ****************************如何引入JS**********************************一.在页面中内嵌JS
缺点:1. 多个页面不能复用代码
2. JS都写在页面中 页面代码比较多 比较臃肿
二.引入外部JS1. 写一个js文件
后缀 .js
2. 其他页面把该js文件引入即可 在head中加入以下代码 <script type="text/javascript" src="../js/Hello.js" charset="gbk"></script> charset="gbk" : 提示浏览器使用gbk解码js文件,该编码方式要和js文件本身的编码方式保持一致
好处:
1. 可复用
2. 可维护
3. 可缓存
可缓存 如果多个页面引用同一个js文件 这个js文件只会被下载一次
如果把重复的代码放到多个页面中 这段重复的代码会下载多次****************************为什么JS代码通常写到head中不写到body中**********************************
因为一般JavaScript代码不是让它直接执行,而是当发生某个事件的时候,驱动它执行,例如单击按钮时执行一个函数,这样js代码只需要在页面加载完之前定义出来即可(</html>代码执行前定义即可),如果写到body中 ,JS代码和html代码揉杂
在一起比较乱、可读性差,所以通常JS代码都会放到head中
例如: <html><head>
<script type="text/javascript">
function test(){ alert('test'); } </script></head>
<body> <input type="button" name="btn1" value="我是按钮" οnclick="test();"/> </body> </html> ****************************变量的定义*********************************
JS是一门大小写敏感的、弱类型语言
大小写敏感: 区分大小写 弱类型: JS是弱类型的语言定义变量的时候,不需要同时执行变量的数据类型
强类型: java 是强类型的语言
一.显示定义
var a = 10;var s = "你好";
二.隐式定义
s = "你好";
alert(s);
注意: 如果没定义s 直接打印s 会报错 s is not defined
JS报错也和Java一样,会终止,后面的JS代码都不会执行...
****************************变量的数据类型*******************************************
虽然JS定义变量的时候不需要为变量同时指定数据类型,但是JS这门语言确实是有数据类型的,变量的数据类型是在
运行的时候决定的...
var a = 10;//执行到这句话 确定a 是数值类型
var s = "你好";//这行到这 确定 s 是字符串类型
JS变量按照数据类型划分: 基本类型和复合类型 ****************************基本类型******************************************* java2大类: boolean 和数值
4小类: boolean 和 字符型、整型、实型
8种
boolean
char int long float doublebyte short
JS
一. 数值类型
1. 整型
var a = 10;
2. 实型
var pi = 3.14;
3. NaN Not a Number 不是一个数字 var a = parseInt("abc");//java NumberFormatException 数字格式化异常 JS中 返回NaNalert(a);//NaN var b = parseInt("123abc");alert(b);//123
4. Infinity无穷
var a = 10/0;//Java ArithmeticException:/ by zero
alert(a);//Infinity
var b = 0/0;alert(b);//NaN
二. 字符串 注意 JS中没有字符型, 都是字符串... var s = "s";var s = "Hello";
字符串除了使用"" 表示 还可以使用 ''表示var s = 's';
var s = 'Hello';
为什么JS中字符串多出一种'' 表示形式? 不是多此一举吗??不是.主要是为了解决转义问题
<input type="button" name="btn1" value="点我" οnclick="alert('你好');"/>
如果 你好也使用 "" 会出现错误 导致代码不能正常运行 三.booleanjava: true 和 false
js: 0 false 非0整数 true
有6个假:1. 0
2. NaN
Infinity 真 3."" 假 " " 真 4. false 5. null 6. undefined
四. null
java中没有null这个数据类型js: null 是一个数据类型,而且这个数据类型 只有一个值 就是null,js中的null和java中一样,表示什么也不引用
五.undefinedundefined也是一个数据类型,有一个唯一的值 是undefined
没有定义,注意: 中文虽然翻译成没有定义,但是千万别理解成没有定义... undefined 是默认值
**************************************复合类型******************************************
1. 函数 2. 数组 3. 类
**************************************函数****************************************** JS没有类的概念, 函数是JavaScript语言中的一级公民... 函数类似于java中的方法.. 一.不带返回值 function test(){
alert('aaa');
alert('bbb'); alert('ccc');} 不带返回值的函数,默认返回undefined 二.带返回值 function sum(a,b){return a + b;}
**************************************变量按声明的位置分******************************************
java: 成员变量和局部变量js: 全局变量和局部变量
1. 全局变量
定义在函数体外的变量叫做全局变量, 所有的函数中都可以使用
作用域: 声明的位置开始 到整个页面的结束 2. 局部变量定义在函数内的变量
没有块作用域一说 作用域: 都是整个方法体内有效
function test(){
if(true){ var b = 10; }alert(b);//在这里也可以访问 作用域是整个函数体内有效 变量声明提前 会统一提到函数的第一句进行声明
}********************************局部变量对同名的全局变量隐藏********************************
如果想访问被隐藏的全局变量a
alert(window.a);
我们定义的全局变量 和 函数 其实都是window对象的一个属性var a = 10;
alert(a);
alert(window.a);
调用函数test();
window.test();
********************************不同浏览器下的JS调试工具********************************
firefox 下的 firebug IE:1. 工具-Internet选项-高级--浏览
禁用脚本调试(IE) 把前面的勾去掉
2. 显示每个脚本错误的通知 把前面的勾 勾上