Blogger Information
Blog 63
fans 8
comment 8
visits 50028
Popular Tutorials
More>
Latest Downloads
More>
Web Effects
Website Source Code
Website Materials
Front End Template
PHP大牛成长之路:JavaScript常用类型、流程控制与json字符串
周Sir-BLOG
Original
538 people have browsed it

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字符串变量也为字符串,不知道这样理解对不对。
Correcting teacher:天蓬老师天蓬老师

Correction status:qualified

Teacher's comments:json就是字符串, html也是字符串, 只是解释方式不同
Statement of this Website
The copyright of this blog article belongs to the blogger. Please specify the address when reprinting! If there is any infringement or violation of the law, please contact admin@php.cn Report processing!
All comments Speak rationally on civilized internet, please comply with News Comment Service Agreement
0 comments
Author's latest blog post