博客列表 >PHP大牛成长之路:JavaScript常用类型、流程控制与json字符串

PHP大牛成长之路:JavaScript常用类型、流程控制与json字符串

周Sir-BLOG
周Sir-BLOG原创
2020年08月13日 19:00:04540浏览

1、JavaScript的数据类型与访问方式

  • 原始类型
No 数据类型 说明
1 number 数值
2 string 字符串
3 bool 布尔
  1. // 1、number 数值
  2. var grade = 88;
  3. // 2、string 字符串
  4. var username = "peter";
  5. // 3、boolean: 布尔
  6. var flag = false;
  7. // 类型检查 typeof
  8. console.log(typeof grade, typeof username, typeof flag);
  9. // 输出结果:number string boolean
  • 特殊类型
No 数据类型 说明
4 null 空对象
5 undefined 未定义
6 boolean 对象(包含函数function/数组array)
  1. // 4、null 空对象
  2. var title = null;
  3. // 5、undefined 未定义
  4. var role = undefined;
  5. // 6、对象 object (包含函数`function`/数组`array`)
  6. var student = { id: 1, name: "admin", email: "admin@php.cn",course :[88,98,85]};

JavaScript数组的定义与访问

  • 数组的定义(索引数组)
  1. var arr1 = new Array(1,2,3,4);
  2. console.log(arr1);
  3. var arr2 = Array(1,2,3,4);
  4. console.log(arr2);
  5. var arr3 = [1,2,3,4];
  6. console.log(arr3);
  7. var arr4 = new Array();
  8. arr4[0]=1;
  9. arr4[1]=2;
  10. arr4[2]=3;
  11. arr4[3]=4;
  12. console.log(arr4);
  13. var arr5 = Array();
  14. arr5[0]=1;
  15. arr5[1]=2;
  16. arr5[2]=3;
  17. arr5[3]=4;
  18. console.log(arr5);
  19. var arr6 = [];
  20. arr6[0]=1;
  21. arr6[1]=2;
  22. arr6[2]=3;
  23. arr6[3]=4;
  24. console.log(arr6);
  • 数组的定义(关联数组)

js不能直接定义关联数组(这点比较奇葩)

  1. var k = ["name", "age", "sex"];
  2. var v = ["peter", 38, "男"];
  3. var arr = new Array();
  4. for (var i = 0; i < k.length; i++) {
  5. arr[k[i]] = v[i];
  6. }
  7. console.log(Array.isArray(arr)); //输出:true
  8. console.log(arr); //输出关联数组
  • 判断数组类型方法
  1. //定义一个数组;
  2. var arr = ["苹果","香蕉","雪梨","西瓜"];
  3. //js中数组也属于对象,判断类型不能使用typeof
  4. console.log(typeof arr); //输出:object
  5. //Array.isArray()可以正确判断是否数组类型
  6. console.log(Array.isArray(arr)); //输出:true
  • 数组的访问

    按索引位置及键名访问

  1. var arr = [1,2,3,4];
  2. console.log(arr[2]); 输出:3
  3. var arr1 = [];
  4. arr1["name"] = "admin";
  5. arr1["mail"] = "admin@php.cn";
  6. console.log(arr["name"]); //输出:admin
  7. console.log(arr["mail"]); //输出:admin@php.cn
  • 数组的遍历
  1. var arr = ["小明","小李","小美","小丽","小黑","小文"]
  2. //for
  3. for (let i = 0; i < arr.length; i++) {
  4. document.write(i + "=>" + arr[i])
  5. document.write("<br>")
  6. }
  7. document.write("<hr>")
  8. //forEach (匿名函数)
  9. arr.forEach(function (item,key) {
  10. document.write(key + "=>" + item);
  11. document.write("<br>")
  12. });
  13. document.write("<hr>")
  14. //forEach (匿名函数简写)
  15. arr.forEach((item,key) => {
  16. document.write(key + "=>" + item);
  17. document.write("<br>")
  18. });
  19. document.write("<hr>")
  20. //for..in..
  21. for (key in arr) {
  22. document.write(key + "=>" + arr[key]);
  23. document.write("<br>")
  24. }

遍历的方法有很多,还有(for…of…)这里这是做了入门了解,具体使用方法区别需要在后期实战中去理解。

使用 splice() 实现对数组元素的新增,删除,替换

  1. var arr = ["小明","小李","小美","小丽","小黑","小文"]
  2. // splice(索引位置,删除几个) -返回被删除的元素
  3. //删除(删除小丽)
  4. document.write(arr.splice(3,1)); //输出:小丽
  5. document.write("<br>");
  6. document.write(arr); //输出:小明,小李,小美,小黑,小文
  7. document.write("<Hr>");
  8. //更新(更新小明和小李)
  9. document.write(arr.splice(0,2,"明明","老李")); //输出:小明,小李
  10. document.write("<br>");
  11. document.write(arr); //输出:明明,老李,小美,小黑,小文
  12. document.write("<Hr>");
  13. //添加(小明和小李)
  14. document.write(arr.splice(0,0,"xiaomin","xiaoli")); //输出:""
  15. document.write("<br>");
  16. document.write(arr); //输出:xiaomin,xiaoli,明明,老李,小美,小黑,小文

javascript函数

  1. // 命名函数
  2. function sum1(a, b) {
  3. document.write(a + b);
  4. }
  5. sum1(11, 2); //输出:13
  6. document.write("<hr>");
  7. // 匿名函数
  8. var sum2 = function (a, b) {
  9. document.write(a + b);
  10. };
  11. sum2(12, 18);//输出:30
  12. document.write("<hr>");
  13. // IIFE:立即调用函数
  14. // 将函数的声明与调用合并
  15. (function (a, b) {
  16. document.write(a + b);
  17. })(100, 80); //输出:190

2、javascript流程控制

  1. let age = 21;
  2. //if单分支
  3. if (age < 30) {
  4. document.write("努力学习吧骚年!");
  5. }
  6. document.write("<hr>");
  7. //if..else..双分支
  8. if (age < 30) {
  9. document.write("努力学习吧骚年!");
  10. } else {
  11. document.write("努力赚钱吧大叔!");
  12. }
  13. document.write("<hr>");
  14. //if...else if...else多分支
  15. if (age < 30) {
  16. document.write("努力学习吧骚年!");
  17. } else if (age >= 30 && age < 50) {
  18. document.write("努力赚钱吧大叔!");
  19. } else {
  20. document.write("能养老了吗大爷!");
  21. }
  22. document.write("<hr>");
  23. //switch多分支
  24. switch (age!==null) {
  25. case age < 30:
  26. document.write("努力学习吧骚年!");
  27. break;
  28. case age >= 30 && age < 50:
  29. document.write("努力赚钱吧大叔!");
  30. break;
  31. default:
  32. document.write("能养老了吗大爷!");
  33. break;
  34. }

3. JSON

3.1. JSON 是什么

  • JSON: JavaScript Object Notation(JS 对象表示法)
  • JSON: 2006 年成为国际标准,并成为表示结构化数据的通用的格式
  • JSON 借用了JS 对象字面量的语法规则,但并非 JS 对象,也并非只是 JS 才用 JSON
  • JSON 独立于任何编程语言, 几乎所有编程语言都提供了访问 JSON 数据的 API 接口
  • 尽管 JSON 与 JS 并无直接关系,但 JSON 在 JS 代码中应用最广泛

3.2. JSON 语法

JOSN 支持三种数据类型: 简单值, 对象, 数组

3.3 简单值

  • 数值: 150, 3.24

  • 字符串: "Hello World!",必须使用双引号做为定界符

  • 布尔值: true, false

  • 空值: null

注意: 不支持undefined

示例(js对象转为json字符串及过滤)

  1. var users = {
  2. id: 23,
  3. name: "admin",
  4. email: "admin@php.cn",
  5. isadmin: true,
  6. class1: function(){return 'php:12期'},
  7. like: ["踢球","游泳"],
  8. contacts: {father:"ad",mom:"min"},
  9. }
  10. //JSON.stringify()将js对象转为json格式的字符串
  11. var jsonStr = JSON.stringify(users);
  12. document.write(jsonStr) ;
  13. document.write("<hr>") ;
  14. // 可以传入第二个参数(数组),对输出的结果进行过滤(例如只输出name和email)
  15. jsonStr = JSON.stringify(users, ["name", "email"]);
  16. document.write(jsonStr) ;
  17. document.write("<hr>") ;
  18. // 第二个参数也可以是一个回调,可以进行动态过滤
  19. // 比如将isadmin的值为true时,过滤为管理员
  20. jsonStr = JSON.stringify(users, function (key, value) {
  21. if(key=='isadmin' && value==true){
  22. return '管理员';
  23. }
  24. return value;
  25. });
  26. document.write(jsonStr) ;

示例(json字符串转为js对象及过滤)

  1. // 1、json字符串如下
  2. var jsonStr = '{"id": "23","name": "admin","email": "admin@php.cn","isadmin": "true"}';
  3. // 2、将json字符串转为js对象
  4. // var obj = JSON.parse(jsonStr)
  5. //也可以使用匿名函数进行过滤输出(将isadmin为true输出为管理员)
  6. var obj = JSON.parse(jsonStr, function (key, value) {
  7. if(key=="isadmin" && value=="true"){
  8. return '管理员';
  9. }
  10. //必须加下以下语句,否则无输出
  11. return value;
  12. });
  13. // 3、创建HTML元素<ul>
  14. var ul = document.createElement("ul");
  15. // 4、循环obj对象得到数据放到HTML元素<li>中并保存到res变量
  16. var res = "";
  17. for (var key in obj) {
  18. res += "<li>" + obj[key] + "</li>";
  19. }
  20. // 5、在HTML元素<ul>中添加列表项目
  21. ul.innerHTML = res;
  22. document.body.appendChild(ul);

总结:

  • javascript对象与json字符串相似,区别于json字符串变量也为字符串,不知道这样理解对不对。
声明:本文内容转载自脚本之家,由网友自发贡献,版权归原作者所有,如您发现涉嫌抄袭侵权,请联系admin@php.cn 核实处理。
全部评论
文明上网理性发言,请遵守新闻评论服务协议