JavaScript介绍 Javascript 语言诞生主要是完成页面的数据验证 。 因此它运行在客户端, 需要运行浏览器来解析执行 JavaScript 代码。 JS 是 Netscape 网景公司的产品, 最早取名为 LiveScript;为了吸引更多 java 程序员。 更名为 JavaScript。
JS 是弱类型, Java 是强类型。
比如int a = 1;那么a不能够再被赋值为其他类型; 但是在js中,var a = 1;a还能被赋值为其他类型,比如a = “hello”;
特点
交互性(它做的就是动态交互)
安全性(不允许直接访问本地硬盘)
跨平台性(只要是可以解释JS的浏览器都可以执行,和平台无关)
JavaScript 和 html 代码的结合方式 第一种方式 只需要在 head 标签中, 或者在 body 标签中, 使用 script 标签来书写 JavaScript 代码
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 <!DOCTYPE html > <html lang ="en" > <head > <meta charset ="UTF-8" > <title > Title</title > <script type ="text/javascript" > alert ("hello javaScript!" ); </script > </head > <body > </body > </html >
第二种方式 使用 script 标签引入 单独的 JavaScript 代码文件
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 <!DOCTYPE html > <html lang ="en" > <head > <meta charset ="UTF-8" > <title > Title</title > <script type ="text/javascript" src ="1.js" > </script > <script type ="text/javascript" > alert ("国哥现在可以帅了" ); </script > </head > <body > </body > </html >
注意:script标签可以用来定义js代码,也可以用来引入js文件 但是,两个功能二选一使用。不能同时使用两个功能
变量 JavaScript 的变量类型:
数值类型: number
字符串类型: string
对象类型: object
布尔类型: boolean
函数类型: function
JavaScript 里特殊的值:
undefined 未定义, 所有 js 变量未赋于初始值的时候, 默认值都是 undefined.
null 空值
NaN 全称是: Not a Number。 非数字。 非数值。
JS 中的定义变量格式:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 <!DOCTYPE html > <html lang ="en" > <head > <meta charset ="UTF-8" > <title > Title</title > <script type ="text/javascript" > var i; i = 12 ; i = "abc" ; var a = 12 ; var b = "abc" ; alert ( a * b ); </script > </head > <body > </body > </html >
关系(比较)运算 等于: == 等于是简单的做字面值的比较 全等于: === 除了做字面值的比较之外, 还会比较两个变量的数据类型
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 <!DOCTYPE html > <html lang ="en" > <head > <meta charset ="UTF-8" > <title > Title</title > <script type ="text/javascript" > var a = "12" ; var b = 12 ; alert ( a == b ); alert ( a === b ); </script > </head > <body > </body > </html >
逻辑运算
在 JavaScript 语言中, 所有的变量, 都可以做为一个 boolean 类型的变量去使用。0 、 null、 undefined、 ””(空串) 都认为是 false;
&& 且运算 有两种情况: 第一种: 当表达式全为真的时候。 返回最后一个表达式的值。 第二种: 当表达式中, 有一个为假的时候。 返回第一个为假的表达式的值
|| 或运算 第一种情况: 当表达式全为假时, 返回最后一个表达式的值 第二种情况: 只要有一个表达式为真。 就会把回第一个为真的表达式的值并且 && 与运算 和 ||或运算有短路。 短路就是说, 当这个&&或||运算有结果了之后 。 后面的表达式不再执行
表达式1 || 表达式2 || 表达式3…|| 表达式n,如果表达式1的运算结果为true,则整个表达式的结果为true,同时不会再对后面的表达式2、表达式3到表达式n进行运算判断,&&同理
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 <!DOCTYPE html > <html lang ="en" > <head > <meta charset ="UTF-8" > <title > Title</title > <script type ="text/javascript" > var a = "abc" ; var b = true ; var d = false ; var c = null ; </script > </head > <body > </body > </html >
数组(重要) 数组定义方式 var 数组名 = []; // 空数组 var 数组名 = [1 , ’abc’ , true]; // 定义数组同时赋值元素
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 <!DOCTYPE html > <html lang ="en" > <head > <meta charset ="UTF-8" > <title > Title</title > <script type ="text/javascript" > var arr = [true ,1 ]; arr[0 ] = 12 ; arr[2 ] = "abc" ; alert (arr.length ); for (var i = 0 ; i < arr.length ; i++){ alert (arr[i]); } </script > </head > <body > </body > </html >
函数(重要) 函数的两种定义方式 第一种, 可以使用 function 关键字来定义函数。 使用的格式如下:function 函数名(形参列表){ 函数体 }
在JavaScript 语言中, 如何定义带有返回值的函数? 只需要在函数体内直接使用 return 语句返回值 即可!
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 <!DOCTYPE html > <html lang ="en" > <head > <meta charset ="UTF-8" > <title > Title</title > <script type ="text/javascript" > function fun ( ){ alert ("无参函数fun()被调用了" ); } function fun2 (a ,b ) { alert ("有参函数fun2()被调用了 a=>" + a + ",b=>" +b); } function sum (num1,num2 ) { var result = num1 + num2; return result; } alert ( sum (100 ,50 ) ); </script > </head > <body > </body > </html > ```` 函数的第二种定义方式, 格式如下: 使用格式如下: **<label style ="color:red" > var 函数名 = function(形参列表) { 函数体 }</label > ** ``` HTML <!DOCTYPE html > <html lang ="en" > <head > <meta charset ="UTF-8" > <title > Title</title > <script type ="text/javascript" > var fun = function ( ) { alert ("无参函数" ); } var fun2 = function (a,b ) { alert ("有参函数a=" + a + ",b=" + b); } var fun3 = function (num1,num2 ) { return num1 + num2; } alert ( fun3 (100 ,200 ) ); </script > </head > <body > </body > </html >
注意:在 Java 中函数允许重载。 但是在 JS 中函数的重载会直接覆盖掉上一次的定义
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 <!DOCTYPE html > <html lang ="en" > <head > <meta charset ="UTF-8" > <title > Title</title > <script type ="text/javascript" > function fun (a,b ) { alert ("有参函数fun(a,b)" ); } function fun ( ) { alert ("无参函数fun()" ); } fun (1 ,"ad" ); </script > </head > <body > </body > </html >
函数的 arguments 隐形参数(只在 function 函数内) 就是在 function 函数中不需要定义, 但却可以直接用来获取所有参数的变量。 我们管它叫隐形参数。 隐形参数特别像 java 基础的可变长参数一样。 public void fun( Object … args ); 可变长参数其实是一个数组。
那么 js 中的隐形参数也跟 java 的可变长参数一样。 操作类似数组。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 <!DOCTYPE html > <html lang ="en" > <head > <meta charset ="UTF-8" > <title > Title</title > <script type ="text/javascript" > function fun (a ) { alert ( arguments .length ); alert ( arguments [0 ] ); alert ( arguments [1 ] ); alert ( arguments [2 ] ); alert ("a = " + a); for (var i = 0 ; i < arguments .length ; i++){ alert ( arguments [i] ); } alert ("无参函数fun()" ); } function sum (num1,num2 ) { var result = 0 ; for (var i = 0 ; i < arguments .length ; i++) { if (typeof (arguments [i]) == "number" ) { result += arguments [i]; } } return result; } alert ( sum (1 ,2 ,3 ,4 ,"abc" ,5 ,6 ,7 ,8 ,9 ) ); </script > </head > <body > </body > </html >
JS中的自定义对象 Object形式的自定义对象 对象的定义: var 变量名 = new Object(); // 对象实例(空对象) 变量名.属性名 = 值; // 定义一个属性 变量名.函数名 = function(){} // 定义一个函数对象的访问: 变量名.属性 / 函数名();
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 <!DOCTYPE html > <html lang ="en" > <head > <meta charset ="UTF-8" > <title > Title</title > <script type ="text/javascript" > var obj = new Object (); obj.name = "华仔" ; obj.age = 18 ; obj.fun = function ( ) { alert ("姓名:" + this .name + " , 年龄:" + this .age ); } obj.fun (); </script > </head > <body > </body > </html >
{}花括号形式的自定义对象 对象的定义: var 变量名 = { // 空对象 属性名: 值, // 定义一个属性 属性名: 值, // 定义一个属性 函数名: function(){} // 定义一个函数 };对象的访问: 变量名.属性 / 函数名();
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 <!DOCTYPE html > <html lang ="en" > <head > <meta charset ="UTF-8" > <title > Title</title > <script type ="text/javascript" > var obj = { name :"国哥" , age :18 , fun : function ( ) { alert ("姓名:" + this .name + " , 年龄:" + this .age ); } }; alert (obj.name ); obj.fun (); </script > </head > <body > </body > </html >
js中的事件