常量
一经赋值不可改变
分类
-
字面常量
-
整型常量 - 整数
-
实型常量 - 小数
-
字符串常量 - 单引号或双引号引用
-
布尔常量 - true和false
-
-
自定义常量
const 常量名 = 值
变量
值可被修改
定义
Es5
特点(Es6不存在)
-
代码中可多次定义同名变量
-
可先使用再定义(显示空值,值不会提前给予)
var 变量名 = 值;
Es6
let 变量名 = 值;
数据类型
类型查看:typeof 目标
基本数据类型
| 类型 | 解释 |
|---|---|
| number | 整数或小数 |
| string | 字符串 |
| boolean | true(1)和false(0) |
| undefined | 空 |
引用数据类型
| 类型 | 解释 |
|---|---|
| Object | 对象类型 |
| function | 方法 |
| array | 数组类型 |
| null | 空 |
类型转换
转String
任意类型都可转为String类型
目标+""
String转数字
规则
从第一位开始扫描,到第一个非数值地方结束
第一个字符是非数值返回 - NaN(Not a Number)
转整数
parseInt("目标")
转小数
parseFloat("目标")
Number(目标)
严格进行数字转换
-
null - 0
-
空字符串 - 0
-
true - 1,false - 0
-
合法转对应数字,非法返回NaN
运算符
值等(==):值相等
全等(===):值和类型相等
-
赋值运算符(从右到左):=
-
算术运算符:+ - * / %
-
复合赋值运算符:+= -= *= /= %=
-
比较运算符:> < >= <= == === != !==
-
逻辑运算符:&& || !
语句结构
分支结构
单分支:if(条件){}
双分支:if(条件){}else{}
多分支:
-
if (){}else if(){}else{}
-
switch(值){case 值:}(通过全等判断值)
循环结构
-
for
-
while
-
do while
关键字
-
break:结束当前循环
-
continue:结束本次循环,开启下次循环
-
retrun:1、结束方法 2、返回值
数组
用于存储多个数据
特点
-
可越界(自动扩容)
-
可存不同的数据类型
-
下标可是非数值(for循环不能遍历非数值下标,可用for in)
定义
方式一:var 数组名 = [元素1,元素2...];
方式二:var 数组名 = new Array(元素1,元素2....);
方式三:var 数组名 = new Array(length);
访问
通过下标访问(0~+∞)
数组名[index]
遍历
for循环
for(var i = 0;i<arr.length;i++){
console.log(arr[i]);
}
for in
for(var i in arr){
console.log(arr[i]);
}
forEach()
arr.forEach(function(element,index){
console.log(element);
console.log(index);
});
常用API
| 方法名 | 作用 |
|---|---|
| splice(起点,数量) | 数组切片 |
| slice(起点,终点) | 数组切片 [起点,终点) |
| push(目标) | 在数组尾部添加元素 |
| unshift(目标) | 在数组头部添加元素 |
| pop() | 删除最后一个元素 |
| shift() | 删除第一个元素 |
| reverse() | 数组倒置 |
| join() | 连接数组所有元素 , 隔开 |
| sort() | 排序 |
| filter(function对象) | 根据规则进行过滤 |
| indexOf(元素) | 元素首次出现位置(无 -1) |
自定义sort()
function 自定义(a,b){
return a-b;
}
console.log(arr.sort(自定义));
filter使用方法
function 自定义(元素){
//true:留 false:走
return 元素要求?false:true;
}
var newarr = arr.filter(自定义);
console.log(newarr);
作用域
局部变量:定义在方法中
全局变量:其他地方定义
方法
功能的集合
使用
方式一
声明式:用function声明
function 方法名(形参列表){
//方法内容
}
方式二
变量式:将方法赋予变量,变量名就是方法名
var 方法名 = function(形参列表){
//方法的实现
}
方法三
var 变量名 = new Function(形参列表,方法体);
// 方法本质是一个对象
var add = new Function("a","b","return a+b");
例:数组去重
// 数组传参顺序(element,index,arr)
var newArr = arr1.filter(function(element,index,arr){
return arr1.indexOf(element)==index;
});
console.log(newArr);
调用
对象名.方法名(实参列表)
若无方法名直接访问方法
方法可以实现自调用
自调用
//一旦在函数对象后打()意味着调用该函数
(function(a,b){
alert(a+b);
})(1,2);
参数传递
值传递 -- 基本数据类型,方法操作对实际参数无影响
引用传递 -- 对象,本质传递地址,方法操作会改变值
对象
方法和属性的集合
本质:K-V的无序集合
K默认是字符串
V可是任意类型
定义
var 对象名 = {"K":"V",...};
var 对象名 = new Object();
使用
对象名.属性名
JSON
本质是文本信息(字符串),用于数据的传递。
语法
'{"K":"V","K":"V"}'
JS与JSON互转
JSON不能传递方法信息
JSON中 - {}:对象、[]:数组
| 功能 | 方法 |
|---|---|
| JSON转JS | JSON.parse(str) |
| JS转JSON | JSON.stringfy(obj) |
常用API
字符串
| 方法 | 作用 |
|---|---|
| charAt(下标) | 获取下标字符 |
| indexOf(字符) | 字符首次出现位置 |
| subString(起,末) | 从起到末截取字符 |
| toUpperCase() | 转为大写 |
| toLowerCase() | 转为小写 |
日期
| 方法名 | 作用 |
|---|---|
| new Date() | 获取当前系统的日期 |
var date = new Date();
// 将当前系统时间转为标准时间字符串
console.log(date.toLocaleString());
随机数
| 方法名 | 作用 |
|---|---|
| Math.random() | 随机数[0~1) |
| Math.floor() | 向下取整 |
| Math.ceil() | 向上取整 |
// 1~10的随机数
console.log(Math.floor(Math.random()*10+1));
本文深入探讨了JavaScript中的常量、变量、数据类型、类型转换、运算符、语句结构、数组、函数、对象、JSON以及作用域等核心概念。讲解了变量的声明与赋值、基本数据类型与引用数据类型的差异、字符串与数字的转换规则、数组的常用操作以及函数的定义与调用。此外,还介绍了对象的创建与使用、JSON的转换方法以及作用域的原理。
454

被折叠的 条评论
为什么被折叠?



