JS的三种使用方式:
JS的三种使用方式: 1、行内JS 写在html标签中的js代码 2、内部JS 写在<script type="text/javascript"></script>标签之间 可以放在html中的任意位置,一般放在<head>标签中或<body>标签中或<body>标签后 3、外部JS 引入外部的js文件 <script type="text/javascript" src="js文件的路径" ></script> 注:如果<script>标签中设置了src属性,name写在<script>双标签中的js代码无效 ------------------------------------------------------------------------------------------------------------------------------------------------------------------------- ------------------------------------------------------------------------------------------------------------------------------------------------------------------------- <!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <title></title> </head> <body> <button onclick="alert('Hello')">Hello</button> </body> <!--内部JS--> <script type="text/javascript"> alert("这是内部JS"); </script> <!--引入外部js--> <script type="text/javascript" src="js/test.js" ></script> </html>JS语句: 语句(statement)是为了完成某种任务而进行的操作,语句以分号 结尾,一个分号语句结束,多个语句可以写在一行内(不建议这么写代码),但是一行写多条语句时,语句必须以分号结尾。 表达式不需要分号结尾。一旦在表达式后面添加分号,则 JavaScript 引擎就将表达式视为语句,这样会产生一些没有任何意义的语句 变量: 所有的变量声明都用 "var " 注释: 和Java一样,//单行 /**/ 多行
<script type="text/javascript"> /* 声明变量 */ //字符串类型 var str="hello"; //数值 var str01=1; //数组 var str02=[1,2,3,4,.....] </script>变量的声明 JavaScript是一种弱类型语言,声明时不需要指定数据类型,直接通过var修饰符声明 1、先声明再赋值 2、声明并赋值 注:如果声明变量时不使用var修饰符,则该变量是全局变量 变量的注意点: 1)若只声明而没有赋值,则该变量的值为 undefined 2)变量要有定义才能使用,若变量未声明就使用,JavaScript 会报错,告诉你变量未定义 3)可以在同一条 var 命令中声明多个变量。 4)若使用 var 重新声明一个已经存在的变量,是无效的。 5)若使用 var 重新声明一个已经存在的变量且赋值,则会覆盖掉前面的值 6)JavaScript 是一种动态类型、弱类型语言,也就是说,变量的类型没有限制,可以赋予各种类型的值
变量提升 JavaScript 引擎的工作方式是,先解析代码,获取所有被声明的变量,然后再一行一行地运行。这造成的结果,就是所有的变量的声明语句,都会被提升到代码的头部,这就叫做变量提升
<script type="text/JavaScript"> //1丶JavaScript是种弱类型语言,声明时不需要指定类型,直接用var声明就行 var a;// 可以先声明 -----> a=1; //在赋值 var b=1;//声明并赋值 console.log(a,b);// consol.log(); <---- 相当于Java的system.out.print(); //2丶要是只声明不赋值,则系统默认赋值 var str; console.log(str);//此时str的值为 undefined //3丶变量定义才能用,否则报错 console.log(str);//此str未定义,运行时返回: UNcaughtError:str is not defined //4丶一个var,可同时声明多个变量 var a,b,c=1; console.log(a,b,c); //5丶若声明一个已经存在的变量是无效的 //6丶若声明一个已经存在变量且给这个变量赋值,则会覆盖之前的那个 //7丶变量提升:JS会将var声明的变量都放进整体代码的头部,只有var声明的变量才会享受此待遇JS 中有 6 种数据类型,其中有五种简单的数据类型:
Undefined丶Null丶布尔丶数值和字符串丶复杂数据类型Object。 数 值(Number): 整数和小数(比如 1 和 3.14) 字符串(String): 字符组成的文本(比如"Hello World") 布尔值(Boolean):true(真)和 false(假)两个特定值 Undefined: 表示“未定义”或不存在,即此处目前没有任何值 Null: 表示空缺,即此处应该有一个值,但目前为空 对象(object)(引用) : 各种值组成的集合 1)、对象(object){name:”zhangsan”,age:”18”} 2)、数组(array)[1,2,3] 3)、函数(function)function test() {} **typeof 操作符** typeof 操作符是用来检测数据类型。 1、typeof null 返回的是 object 字符串 2、函数不是数据类型,但是也可以使用 typeof 操作符返回字符串。 typeof 操作符可以操作变量也可以操作字面量。 注意:函数在 JavaScript 中是对象,不是数据类型,所以使用 typeof 区分 function 和object 是有必要的 **undefined** undefined 类型的值是 undefined。 undefined 是一个表示"无"的原始值,表示值不存在。 出现 undefined 的常见情况: 1)当声明了一个变量而没有初始化时,这个变量的值就是 undefined 2)当函数需要形参,但未传递实参时 3)函数没有返回值,但定义了变量接收 **null** null 类型是只有一个值的数据类型,即特殊的值 null。它表示空值,即该处的值现在为空, 它表示一个空对象引用。 使用 Null 类型值时注意以下几点: 1)使用 typeof 操作符测试 null 返回 object 字符串。 2)undefined 派生自 null,所以等值比较返回值是 true。 所以,未初始化的变量和赋值为 null 的变量相等数值型 **数值型包含两种数值:整型和浮点型** 1)所有数字(整型和浮点型)都是以 64 位浮点数形式储存。所以,JS 中 1 与 1.0 相等, 而且 1 加上 1.0 得到的还是一个整数。浮点数最高精度是 17 位小数,由于浮点数运算时可能不精确,尽量不要使用浮点数做判断。 2)在存储数值型数据时自动将可以转换为整型的浮点数值转为整型。 3)对于过大或过小的数值,可以使用科学计数法来表示 4)Infinity、-Infinity 超过了表数范围,出现 Infinity(正无穷)或者-Infinity(负无穷) isFinite()函数可以确定是否超出范围: true:没有超出;false:超出了 **NaN** 表示非数值(Not a Number),是一个特殊的值。 如:将字符串解析成数字出错的场合。 console.log(parseInt("abc"));//parseInt 方法将字符串解析为数值,但若无法解析,返回 NaN 注意: NaN 不等于任何值,包括它本身,因为它不是一个值 NaN 与任何数(包括它自己)的运算,得到的都是 NaN isNaN()可以用来判断一个值是否为 NaN true:不是数字;false:是数字 **字符串** 使用 ' ' 或 " "引起来,如:'sxt',"good"。 使用加号’+’进行字符串的拼接,如:console.log('hello' + ' everybody'); **instanceof 运算符** typeof 操作符对数组(array)和对象(object)的显示结果都是 object,那么可以利用 instanceof 运算符,它可用于判断一个变量是否某个对象的实例 ------------------------------------------------------------------------------------------------------------------------------------------------------------------------- ------------------------------------------------------------------------------------------------------------------------------------------------------------------------- <!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <title>数据类型</title> </head> <body> </body> <script type="text/javascript"> var a = 1; // 数值型 console.log(typeof a); // number var b = true; // 布尔型 console.log(typeof b); // boolean var c = "Hello"; // 字符串 console.log(typeof c); // string var d; // 未定义 console.log(typeof d); // undefined var e = null; // null console.log(typeof e); // object var obj = {}; // 空对象 var obj2 = {uname:"zhangsan"}; var obj3 = new Object(); obj3.age=18; console.log(typeof obj); // object console.log(typeof obj2); // object console.log(typeof obj3); // object // 函数 function test(str) { } console.log(typeof test); // function console.log("================undefined==========="); // 1)当声明了一个变量而没有初始化时,这个变量的值就是 undefined var aa; console.log(aa); // 2)当函数需要形参,但未传递实参时 function tt(num) { console.log(num); } tt(); // 未传递实参 // 3)函数没有返回值,但定义了变量接收 function tt2() { console.log("函数..."); // return true; } tt2(); var t = tt2(); // 没有返回值 console.log(t); console.log("=================null=================="); // 1)使用 typeof 操作符测试 null 返回 object 字符串。 // 2)undefined 派生自 null,所以等值比较返回值是 true。所以,未初始化的变量和赋值为 null 的变量相等 // undefined 派生自 null console.log(undefined == null); // true var ab; // 只声明未赋值返回undefined console.log(ab == null); // true console.log("=================数值型================"); // 浮动性自动转整型 console.log(1 + 2.0); // 3 var n = 5.0; console.log(n); // 5 // 数值过大或过小会使用科学计数法显示 var num2 = 4.12e9; console.log(num2);//4120000000 console.log(0.0000000412);//4.12e-8 // 正无穷和负无穷 console.log(100e1000);//Infinity console.log(-100e1000);//-Infinity console.log(1 / -0 );// 除以负 0 得到-Infinity console.log(1 / +0); // 除以 0 得到 Infinit // isFinite() console.log(isFinite(1)); //true console.log(isFinite(100e1000)); //fasle // NaN console.log(parseInt("123")); // 123 console.log(parseInt("abc")); // NaN console.log(NaN == NaN); // false console.log(parseInt("abc") + 1); // NaN // isNaN()可以用来判断一个值是否为 NaN console.log(isNaN(parseInt("123"))); // false console.log(isNaN(parseInt("abc"))); // true console.log("================字符串================="); console.log('Hello' + " everyone"); console.log("===============对象===================="); // instanceof 运算符 var o = {}; var ar = []; console.log(o instanceof Object); // true console.log(ar instanceof Array); // true </script> </html>