文章目录
变量的命名规范:
1. 规则:
>不能用关键字
关键字:有特殊含义的字符,JavaScript 内置的一些英语词汇。例如:let、var、if、for等
>只能用 __ 、字母、数字、$组成,且数字不能开头
>字母严格区分大小写,如 Age 和 age 是不同的变量
2. 规范:
>起名要有意义
>遵守小驼峰命名法
第一个单词首字母小写,后面每个单词首字母大写。例:userName
let与var的区别:
在较旧的JavaScript,使用关键字 var 来声明变量 ,而不是 let。
var 现在开发中一般不再使用它,只是我们可能再老版程序中看到它。
let 为了解决 var 的一些问题。
var 声明:
>可以先使用 再声明 (不合理)
>var 声明过的变量可以重复声明(不合理)
>比如变量提升、全局变量、没有块级作用域等等
注:let没有变量提升,不能重复定义( let a=10; function a(){ } 不可以!)
常量: const
命名规范与变量一致 。
注意: 常量不允许重新赋值,声明的时候必须赋值(初始化)
基本数据类型不可以重新赋值,引用数据类型可以
数组对象建议用const申明,其余的可以let申明
数据类型:
基本数据类型(值类型):
存储的是该对象的实际数据
——定义:string、number、boolean、null、undefined
——特征:基本数据类型数据赋值给某一个变量之后值本身就不会再发生改变
引用数据类型(对象数据类型):
存储的是该对象在栈中引用(地址),真实的数据存放在堆内存中
—定义:object、array、function
—特征:引用数据类型的值可以通过其赋值的变量修改
模板字符串: ${变量名}
检测数据类型: typeof (NaN数据类型是number)
返回值:string、number、boolean、undefined、object、function
问:如何利用原生js判断array / function / object
答:instanceof 判断A是否为B的实例
A instanceof B 返回布尔值
数组
定义:
---字面量定义: var arr = [1,2,3,4]
---构造函数定义: var arr = new Array(1,2,3,4)
增:arr.push(1) 在原数组的末尾添加元素
arr.unshift(1) 在原数组的头部添加元素
删:arr.pop( ) 在原数组的末尾删除一个元素
arr.shift( ) 在原数组的头部删除一个元素
splice方法
splice方法: 可以增删改
删除: arr.splice(1,3) 从位置1开始删除3个
[1,2,3,4,5] ---> [1,5]
增加: arr.splice(1,0,'cg','t1') 在位置1的后面添加2个
[1,2,3,4,5] ---> [1,'cg','t1',2,3,4,5]
修改: arr.splice(2,1,8) 将位置2的内容改为8
[1,2,3,4,5] ---> [1,2,8,4,5]
排序
排序: arr.sort( )
---如果不传参,按照unicode码排序,影响原数组(先比较第一个数字再第二个数字)
[5,44,3,13,21] ---> [13,21,3,44,5]
---如果传参数,需要传递一个回调函数
let arr = [3,11,5,33,9]
arr.sort(function(a,b){
return a-b; //a-b 从小到大,b-a 从大到小
})
console.log(arr);
内置对象
内置数学Math对象
Math.floor(1.23) 向下取整
Math.ceil(1.7) 向上取整
Math.round(1.5) 四舍五入
Math.random() 随机数,返回 0<=x<1 之间的一个数
Math.min(1,2,3,4) 最小值
Math.max(1,2,3,4) 最大值
Math.PI 圆周率
Math.pow(8,2) 8^2=64
随机浮点数:
Math.random()*(max-min)+min
//案例: 3~50之间随机产生一个数 (随机点名) (整数!)
function fn(min,max){
return Math.floor(Math.random()*(max-min+1))+min
}
let result= fn(3,50)
console.log(result);
//案例:随机4位验证码
let str='1234abCD'
let targetStr=''
for(let i=0;i<4;i++){
targetStr+=str[Math.floor(Math.random()*str.length)]
}
console.log(targetStr);
//案例:随机点名(不重复):
let str= ['赵云', '黄忠', '关羽', '张飞', '马超', '刘备', '曹操']
while(str.length!=0){
let nameid= Math.floor(Math.random()*str.length)
console.log(str[nameid]);
str.splice(nameid,1)
}
内置日期时间对象
function getDateAndTime(){
let date=new Date()
let year=date.getFullYear()
let month=date.getMonth()+1
let day=date.getDate()
let hour = date.getHours()
let min = date.getMinutes()
let sec = date.getSeconds()
return year+'年'+month+'月'+day+'日'+hour+':'+min+':'+sec
}
// 当地时间格式
let date = new Date()
console.log(date.toLocaleDateString()); // 2022/12/10
console.log(date.toLocaleTimeString()); // 16:29:25
console.log(date.toLocaleString()); // 2022/12/10 16:29:25