JavaScript (一)
注意: JavaScript中的语句要以分号(;)为结束符
注意: JavaScript中的语句要以分号(;)为结束符
注意: JavaScript中的语句要以分号(;)为结束符
引入方式:
直接用标签
<script> // js代码 </script>
引入额外的js文件
<!DOCTYPE html> <html lang="zh-CN"> <head> <meta http-equiv="content-Type" charset="UTF-8"> <meta http-equiv="x-ua-compatible" content="IE=edge"> <title>Title</title> <script> console.log(123); </script> <script src="myscript.js"></script> </head> <body> <div id="d1">s14</div> <script> console.log(456); </script> </body> </html>
语法:
- JavaScript的变量名可以使用_,数字,字母,$组成,不能以数字开头。
- 声明变量使用 var 变量名; 的格式来进行声明
- JavaScript中的语句要以分号(;)为结束符。
数据类型: (字符串, 数字,布尔值,null,undefined,对象)
字符串 :
var name = "alex"; var firstName = "Lee"; // 驼峰式命名 console.log(firstName); console.log(name);
字符串方法:
// var name = "alex"; // var firstName = "Lee"; // 驼峰式命名; // console.log(firstName); // console.log(name); var name = ' niuli 哇咔咔' console.log(name); /* 查看字符串长度 */ name.length; // 删除字符串两侧空格 name = name.trim(); console.log(name); // 返回第几个字符(索引字符) console.log(name.charAt(1)); // 字符串拼接 // var name1 = 'GIANT'; var name2 = 'MERIDA'; var name3 = name.concat(name1,name2); console.log(name3); name = name3; // 查找字符串,从指定索引位置开始,若没找到,返回-1 console.log(name.indexOf('哇咔咔',20)); console.log(name.indexOf('哇咔咔',0)); // 切片取字符串 console.log(name); console.log(name.substr(0,3)); console.log(name.substring(0,3)); // 切片取字符串 console.log(name.slice(6,10)); // 分割字符串 // console.log(name.split(' '));
ES6中引入了模板字符串。模板字符串(template string)是增强版的字符串,用反引号(`)标识。它可以当做普通字符串使用,也可以用来定义多行字符串,或者在字符串中嵌入变量。
// 普通字符串 `这是普通字符串!` // 多行文本 `这是多行的 文本` // 字符串中嵌入变量 var name = "q1mi", time = "today"; `Hello ${name}, how are you ${time}?`
数字:Number
NaN,表示不是一个数字(Not a Number)
var a = 12.34; var b = 20; var c = 123e5; // 12300000; var d = 123e-5; // 0.00123;
常用方法: ( parseInt parseFloat 转换数字类型 )
parseInt("123") // 返回123; parseFloat("123.456") // 返回123.456; parseInt("ABC") // 返回NaN,NaN属性是代表非数字值的特殊值。该属性用于指示某个值不是数字。;
布尔值 :Boolean
var a = true; var b = false;
""(空字符串)、0、null、undefined、NaN都是false。
null undefined
- null表示值是空,一般在需要指定或清空一个变量时才会使用,如 name=null;
- undefined表示当声明一个变量但未初始化时,该变量的默认值是undefined。还有就是函数无明确的返回值时,返回的也是undefined。
null表示变量的值是空,
undefined则表示只声明了变量,但还没有赋值。
对象: object
JavaScript 中的所有事物都是对象:字符串、数值、数组、函数...此外,JavaScript 允许自定义对象。
数组: (列表)
var a = [1,2,3,4]; var b = ['a','b','c','d'] console.log(a) console.log(b)
常用方法:
console.log(a.length); // 数组末尾追加 a.push(5); console.log(a); // 末尾删除,返回一个删除的元素 // a.pop(); console.log(a.pop()); console.log(a); a.unshift('头部添加用unshift'); console.log(a); // 头部删除 没有返回值 a.shift(); console.log(a); // 切片取值 a2 = a.slice(0,2); console.log(a2); // 翻转列表 a.reverse(); console.log(a); a.reverse(); console.log(a); // 数组拼接成字符串 a3 = a.join('+'); console.log(a3); // 删除添加元素/不删除添加元素 返回删除的东西 (可定点插入) // ( 索引开始 索引结束 要添加的元素) a.splice(1,2,'添加的元素'); console.log(a); // 按照ASCII码排序 a = [2,1,33,55,9,0]; a.sort(); console.log(a); 关于sort()需要注意: 如果调用该方法时没有使用参数,将按字母顺序对数组中的元素进行排序,说得更精确点,是按照字符编码的顺序进行排序。要实现这一点,首先应把数组的元素都转换成字符串(如有必要),以便进行比较。 如果想按照其他标准进行排序,就需要提供比较函数,该函数要比较两个值,然后返回一个用于说明这两个值的相对顺序的数字。比较函数应该具有两个参数 a 和 b,其返回值如下: 若 a 小于 b,在排序后的数组中 a 应该出现在 b 之前,则返回一个小于 0 的值。 若 a 等于 b,则返回 0。 若 a 大于 b,则返回一个大于 0 的值。 function sortNumber(a,b){ return a - b } var arr1 = [11, 100, 22, 55, 33, 44] arr1.sort(sortNumber)
遍历数组中的元素
var a = [10, 20, 30, 40]; for (var i=0;i<a.length;i++) { console.log(i); }
类型查询
typeof "abc" // "string" typeof null // "object" typeof true // "boolean" typeof 123 // "number"
typeof是一个一元运算符
(就像++,--,!,- 等一元运算符),不是一个函数,也不是一个语句。
对变量或值调用 typeof 运算符将返回下列值之一:
- undefined - 如果变量是 Undefined 类型的
- boolean - 如果变量是 Boolean 类型的
- number - 如果变量是 Number 类型的
- string - 如果变量是 String 类型的
- object - 如果变量是一种引用类型或 Null 类型的
运算符:
1. 算术运算符
+ - * / % ++ --
2. 比较运算符
> >= < <= != == === !== 注意: 1 == “1” // true 1 === "1" // false
3. 逻辑运算符
&& || !
快速把一个变量转换成布尔值
!!1
4. 赋值运算符
= += -= *= /=
流程控制
if else:
a = 10; if (a>5){ console.log('大了') }else { console.log('小了') }
if else if else
b = 10; if (b>10){ console.log('bigger'); } else if (b<10) { console.log('smaller!'); } else { console.log('ok'); }
switch / case, break
today = 2; switch (today) { case 1: console.log('周一吃米饭'); break; case 2: console.log('周二吃面条'); break; case 3: console.log('周三吃馒头');
break; }
switch中的case子句通常都会加break语句,否则程序会继续执行后续case中的语句。
for 循环
a = 10; for (i=0;i<a;i++){ console.log(i); }
while 循环
i = 0; while (i<10) { console.log(i); i++; }
三元运算
var x = 22; var y = 2; var c = x>y ? x:y
c = x>y ? x:y
c = if ( x>y ) else( ? ) x ( : 或者的意思) y