JavaScript变量与数据类型,数组的常用方法,流程控制,循环,和JSON格式字符串
程序员文章站
2022-03-24 21:20:46
...
JS的语法
- JS有变量声明,推荐写上,变量名称和PHP一样字母数字下划线组合
- 变量声明方式
- var 变量声明,允许重复声明(默认全局作用域)
- let 带块作用域的变量声明,禁止重复声明(根据场景声明成私有或全局)
- const 常用于常量声明,常量一般用在对象上
<script type="text/javascript">
//可以多次这样声明
var num = 1;
var num = 2;
//禁止多次声明
let name = 'huang';
//就不可以再写let name
let name = 'wen'
//但是可以更新
name = 'ying'
//推荐以后尽量使用let 声明
</script>
- 变量的定义要注意两个特殊类型,undefined值是声明了但没赋值,null值是会被垃圾回收机制进行回收的,undefined不会被回收
- 变量的完整流程
<script type="text/javascript">
// 声明
let email;
console.log(email);
// 赋值:第一次也叫初始化
email = null;
console.log(email);
// 更新: 第二次以及以后赋值
email = "peter@qq.com";
console.log(email);
// 通常是将声明与初始化合并
let num = 100;
</script>
JS的数据类型/判断
类型判断typeof关键字,数组需要使用Array.isArray()判断
-
1.原始类型/基本类型:string,number,boolean
<script type="text/javascript">
// 1.创建string类型
let username = 'wl';
// typeof关键字判断类型
console.log(typeof username);
// 2.创建number类型
let age=44;
console.log(typeof age);
// 3.创建boolean类型
let isMan = true;
console.log(typeof isMan);
</script>
-
2.特殊类型:undefined,null(null代表空对象,类型判断是个对象)
<script type="text/javascript">
// 4.创建undefined
let education;
console.log(typeof education);
// 5.创建null
let deposit=null;
console.log(typeof deposit);
</script>
- 3.对象类型:object,array,function(全局对象window)
<script type="text/javascript">
// 6.创建object对象
let obj = {
id:'abs123',
name:'wl',
age:44,
'hello world':'hello php',
getMore:function(){
return 'no more';
}
}
// 类型判断
console.log(typeof obj);
// 调用对象的属性方法
console.log( obj.getMore() );
console.log( obj.name );
// 调用特殊名称的属性
console.log( obj['hello world'] );
// 7.创建数组
let arr=['1','2','3','4'];
// 使用typeof无法判断出数组,只能判断出是对象类型
console.log(typeof arr);
// 使用Array.isArray() 方法进行判断,返回true/false
console.log(Array.isArray( obj ));
// 8.创建function
function fun(a,b,c){
return '123';
}
// typeof 可以识别出function
console.log(typeof fun);
// console.dir展开显示一个对象的所有属性和方法
console.dir(fun);
</script>
模板字面量使用反引号,变量使用${变量名,变量名},${id}字符串${name}字符串
输出大量字符串和变量内容
数组的常用方法
-
arr.push()方法,在尾部追加元素
<script>
let arr1 = [1,2,3,4,5,6,7,8,9];
// 在尾部追加元素
arr1.push("abc");
console.log(arr1);
</script>
-
arr.slice() 方法,获取数组的元素片段
<script>
let arr1 = [1,2,3,4,5,6,7,8,9];
// 获取数组的元素片段,从下标0开始获取两位
console.log(arr1.slice(0,2));
</script>
-
arr.splice() 方法,获取被删除的元素,还可以实现对数组的增删改
<script>
let arr1 = [1,2,3,4,5,6,7,8,9];
// 删除,返回被删除的元素组
// console.log(arr1.splice(1,2));
// console.log(arr1);
// 更新,返回被替换的元素组
// console.log(arr1.splice(1,2, "果汁", "黄瓜"));
// console.log(arr1);
// 插入,返回空数组
console.log(arr1.splice(1,0, "果汁", "黄瓜"));
console.log(arr1);
</script>
js中的流程控制
- 单分支 if(){}判断
- 双分支 if(){} else{}判断
- 多分支 if(){} else if(){} else{}判断,switch判断
<script>
// 1.单分支判断
if(true){
console.log('条件成立执行');
}
// 2.双分支判断
if(false){
console.log('条件成立执行');
}else{
console.log('条件不成立执行');
}
// 3.多分支 if判断
var age = 68;
if(age>=0 && age <=14){
console.log('少年');
}else if(age>=15 && age<=24){
console.log('青年');
}else if(age>=25 && age<=64){
console.log('壮年');
}else if(age >= 65){
console.log('老年');
}else{
console.log('未知');
}
// 4.多分支 switch判断
var age = 77;
switch(true){
case age>=16 && age<45:
console.log('可高强度劳动力');
break;
case age>=45 && age <60:
console.log('普通劳动力');
break;
case age>=60 :
console.log('退休啦!');
break;
default:
console.log('未成年');
}
</script>
Js的循环遍历
以下循环除了for in循环比较合适数组,其他循环都合适对象或数组
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8" />
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
<title>js中的循环遍历</title>
</head>
<body>
<ul>
<li>item1</li>
<li>item2</li>
<li>item3</li>
</ul>
<script>
// 拿到第一个UL里的li
let ls= document.querySelectorAll('ul:first-of-type li');
console.log(ls);
var arr = [1,2,3,4,5];
// 1.for循环
for(var i=0; i<ls.length; i++){
ls[i].style.color = "red";
}
for(var i=0; i<arr.length; i++){
console.log(arr[i]);
}
// 2.while循环
var a = 0;
while(a < ls.length){
ls[a].style.color = "blue";
a++;
}
// 3.for-of循环
for (let item of ls) {
item.style.color = "cyan";
}
// 4.forEach()循环
ls.forEach(function(value,index,array){
console.log(value, index, array);
value.style.color = "pink";
});
// 5.for-in循环数组,for循环的简略版,比较合适数组使用
for (let index in arr) {
// console.log(index);
}
</script>
</body>
</html>
JSON格式的字符串
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Document</title>
</head>
<body>
<script>
// 编写json格式字符串的商品信息
let sj = `
{
"type":"phone",
"name":"huawei",
"is4g":true,
"color":["black","white","blue","red"],
"camera":{
"back":"18000000px",
"front":"16000000px"
}
}
`;
console.log( sj );
// 创建js对象,转为JSON字符串
const xinxi = {
id: "10203222",
name: "书迎",
age: 24,
};
// 转为json字符串
let strJson = JSON.stringify(xinxi);
console.log(strJson);
</script>
</body>
</html>
JSON工具验证,自己编写的JSON字符串