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

浙公网安备 33010602011771号