演示的常用类型,流程控制 ,json
一.js数据类型
1.代码:
<!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></body>
<script>
// 原始类型:数值,字符串,布尔------------------------------
//数值
var number = 10;
console.log("访问数值类型:" + number);
//字符串
var shopname = "云都4S店";
console.log("访问字符串类型:" + shopname);
var is_buy = true;
console.log("访问布尔类型:" + is_buy);
//特殊类型:null,undefined--------------------------------
//空对象null
//typeof:获取数据类型
var tip = null;
console.log("访问null的类型:" + typeof tip);
var auth = undefined;
console.log("访问undefined的类型:" + typeof auth);
//备注:null与undefined的值相等为空,但熟练类型不同
console.log(null == undefined);
console.log(null === undefined);
//对象:数组,对象,函数;在jS中数组于函数也是一种对象---------------------------
// 数组:typeof 只能盘点数组是对象,判断输出要使用
var catarr = ["东风本田", "大众朗逸", "福特翼虎"];
console.log("访问数组类型:" + typeof catarr);
console.log("判断数组:" + Array.isArray(catarr));
console.log("访问数组元素:" + catarr[1]);
// 数组遍历方式一
for (var i = 0; i < catarr.length; i++) {
console.log("数组遍历方式一:" + catarr[i]);
}
// 数组遍历方式二
catarr.forEach(function (item, key) {
console.log("数组遍历方式二:" + item + ",键值:" + key);
});
//获取数组部分元素
console.log("访问数组:" + catarr);
console.log("数组部分元素:" + catarr.slice(1, 3));
//获取数组元素的删除,新增,替换
console.log("数组元素删除:" + catarr.splice(2, 1));
console.log("删除后数组:" + catarr);
console.log("数组元素新增:" + catarr.splice(2, 0, "奥迪A4", "宝马3x"));
console.log("新增后数组:" + catarr);
console.log("数组元素替换:" + catarr.splice(2, 2, "航空母舰", "东方快递"));
console.log("替换后数组:" + catarr);
// 函数之命名函数
function sumnum(num, price) {
console.log("命名函数计算总价:" + num * price);
}
sumnum(10, 5.5);
// 函数之匿名函数
var fun = function (num, price) {
console.log("匿名函数计算总价:" + num * price);
};
fun(6, 12);
// IIFE:立即调用函数,函数的声明和调用合并
(function (uname, uid) {
console.log("用户名:" + uname + ";用户ID:" + uid);
})("admin", 12);
// 备注:通过命名函数与匿名函数会自动生成window下的一个属性
//对象
var obj = {
buyname: "admin",
total: 500000,
is_get: false,
buyinfo: ["A110", "大众朗逸", 120000],
};
//对象属性值出现非法字符(如:is_get),不能用点访问,只能用【】访问
console.log("访问对象一:" + obj.buyname);
console.log("访问对象二:" + obj["is_get"]);
</script>
</html>
2.控制台打印图
二.流程控制及json
1.代码
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8" />
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
<title>流程控制及json</title>
</head>
<body></body>
<script>
var taday = "周日";
// 单分支
if (taday == "周日") {
console.log("可以去嗨了");
}
//双分支
if (taday != "周日") {
console.log("工作日");
} else {
console.log("休息天");
}
//多分支一
if (taday == "周日") {
console.log("在家宅着");
} else if (taday == "周六") {
console.log("出去浪");
} else if (taday == "周五") {
console.log("加点班");
} else {
console.log("正常上班");
}
//多分支二
var leve = 6;
switch (true) {
case leve == 1:
console.log("青铜");
break;
case leve == 2:
console.log("白银");
break;
case leve == 3:
console.log("黄金");
break;
case leve == 4:
console.log("王者");
break;
default:
console.log("小菜鸟");
}
var json = {
name: "admin",
deposit: 1111111111,
is_buy: true,
course: [110, 102, 96],
car: {
shopname: "云都4S店",
money: "12万",
},
get: function () {
return "继承财产";
},
};
// JOSN 支持三种数据类型: 简单值, 对象, 数组
// 字符串: `"Hello World!"`,必须使用**双引号**做为定界符
// 布尔值: `true`, `false`
// 空值: `null`
// 注意: 不支持`undefined`
// 将js对象转为json格式的字符串
var jsonStr = JSON.stringify(json);
console.log(jsonStr);
// 传入第二参数数组,对输出的结果进行限制
jsonStr = JSON.stringify(json, ["name", "course", "is_buy"]);
console.log(jsonStr);
// 如果第二个参数是一个回调,可以进行动态过滤
jsonStr = JSON.stringify(json, function (key, value) {
switch (key) {
case "deposit":
return undefined;
case "car":
return "保护客户信息";
// 必须要有default, 才可以输出其它未处理的属性
default:
return value;
}
});
// json中没有方法, undefined也没有
console.log(jsonStr);
</script>
</html>
2.控制台打印图