博客列表 >js基础:数据类型,流程控制,json序列化

js基础:数据类型,流程控制,json序列化

暝皑祯π_π
暝皑祯π_π原创
2020年05月24日 20:47:10976浏览

数据类型

  1. <!DOCTYPE html>
  2. <html lang="en">
  3. <head>
  4. <meta charset="UTF-8" />
  5. <meta name="viewport" content="width=device-width, initial-scale=1.0" />
  6. <title>Document</title>
  7. </head>
  8. <body>
  9. <script>
  10. // 数据类型
  11. // 原始类型:number,string,boolean
  12. // typeof:查看数据类型
  13. var id = 12;
  14. var name = "dbname";
  15. var flag = false;
  16. console.log(typeof id, typeof name, typeof flag);
  17. // 特殊类型:null undefined
  18. // null 表示空对象
  19. // undefined 专用于表非对象类型变量的空/无
  20. var bag;
  21. var hei = undefined;
  22. console.log(bag);
  23. // null和undefined进行数据类型转换的不同之处
  24. // console.log(NULL + 100); //100
  25. // consloe.log(undefined + 100); //NAN:不是数值
  26. // 对象类型:array object function
  27. //array:关联数组
  28. var fruit = ["watermelon", "apple", "orange", "peach", "pear"];
  29. // 打印数组
  30. console.log(fruit);
  31. // 数组元素个数
  32. console.log(fruit.length);
  33. // 获取数组中的第几个元素
  34. console.log(fruit[1]);
  35. // Array.isArray():判断是否为数组:返回布尔值
  36. console.log(Array.isArray(fruit));
  37. // slice()获取部分数组元素:参数1:起始值。参数2:结束值。不包括结束值的参数
  38. console.log(fruit.slice(0, 3));
  39. // splice(), 可以实现数组的插入, 替换, 删除
  40. fruit.splice(1, 0, "mango");
  41. console.log(fruit);
  42. // 对象:js中的数组类似于php中的索引数组, js中的对象类似于php中的: 关联数组
  43. // 创建对象
  44. var study = {
  45. number: 1135,
  46. name: "小明",
  47. gradr: "一年级",
  48. "test scroe": {
  49. language: 86,
  50. mathematics: 95,
  51. English: 66,
  52. },
  53. };
  54. // 访问对象属性
  55. // 访问对象成员/属性,方法1 使用点操作符.,方法2 使用操作符[]
  56. console.log(study.number);
  57. console.log(study["test scroe"].English);
  58. // 使用表格的方式显示属性内容
  59. console.table(study);
  60. // 函数
  61. // 函数创建
  62. function db(a, b) {
  63. console.log(a + " + " + b + " = ", a + b);
  64. }
  65. // 函数访问
  66. db(5, 60);
  67. // 匿名函数
  68. var dm = function (a, b) {
  69. console.log(a + " * " + b + " = ", a * b);
  70. };
  71. dm(12, 35);
  72. </script>
  73. </body>
  74. </html>

流程控制

  1. <!DOCTYPE html>
  2. <html lang="en">
  3. <head>
  4. <meta charset="UTF-8" />
  5. <meta name="viewport" content="width=device-width, initial-scale=1.0" />
  6. <title>Document</title>
  7. </head>
  8. <body>
  9. <script>
  10. // 流程控制:和php一样
  11. // 分支:单分支
  12. var girAge = 50;
  13. if (girAge >= 50) {
  14. console.log("知名之年");
  15. }
  16. // 分支:双分支
  17. var girAge = 20;
  18. if (girAge >= 50) {
  19. console.log("知命之年");
  20. } else {
  21. console.log("我还没老");
  22. }
  23. // 分支:多分支
  24. if (girAge >= 50) {
  25. console.log("知命之年");
  26. } else if (girAge >= 40) {
  27. console.log("不惑之年");
  28. } else if (girAge >= 30) {
  29. console.log("而立之年");
  30. } else {
  31. console.log("我是年轻人");
  32. }
  33. // switch
  34. switch (true) {
  35. case girAge > 50:
  36. console.log("知命之年");
  37. break;
  38. case girAge < 50 && girAge > 40:
  39. console.log("不惑之年");
  40. break;
  41. default:
  42. console.log("我还年轻");
  43. break;
  44. }
  45. fruit = ["watermelon", "apple", "orange", "peach", "pear"];
  46. // for循环
  47. for (var i = 0; i < fruit.length; i++) {
  48. console.log(fruit[i]);
  49. }
  50. // while循环
  51. var i = 0;
  52. while (i < fruit.length) {
  53. console.log(fruit[i]);
  54. i++;
  55. }
  56. // forEach是数组对象上的方法
  57. // fruit:数组
  58. // item:元素
  59. // index:元素的索引
  60. // array:数组
  61. // array.forEach(function (item, index, array) {});
  62. fruit.forEach(function (item) {
  63. console.log(item);
  64. });
  65. </script>
  66. </body>
  67. </html>

josn序列化

  1. <!DOCTYPE html>
  2. <html lang="en">
  3. <head>
  4. <meta charset="UTF-8" />
  5. <meta name="viewport" content="width=device-width, initial-scale=1.0" />
  6. <title>Document</title>
  7. </head>
  8. <body>
  9. <script>
  10. // forEach是数组对象上的方法
  11. // fruit:数组
  12. // item:元素
  13. // index:元素的索引
  14. // array:数组
  15. // array.forEach(function (item, index, array) {});
  16. fruit.forEach(function (item) {
  17. console.log(item);
  18. });
  19. // JSON对象与它相比有二处不同
  20. // 1. 没有变量声明: JSON中没有变量概念
  21. // 2. 没有分号: 因为JSON不是JS语句
  22. // 3. 属性名: 任何时候都必须添加双引号, 且必须是双引号
  23. // josn:数据交换的一种格式,也是一个字符串
  24. // JOSN 支持三种数据类型: 简单值, 对象, 数组
  25. // 简单值
  26. // 数值: `150`, `3.24`
  27. // 字符串: `"Hello World!"`,必须使用**双引号**做为定界符
  28. // -布尔值: `true`, `false`
  29. // 空值: `null`
  30. // 注意: 不支持`undefined`
  31. var object = {
  32. name: "Peter Zhu",
  33. age: 29,
  34. isMarried: true,
  35. course: {
  36. name: "JavaScript",
  37. grade: 99,
  38. },
  39. getName: function () {
  40. return this.name;
  41. },
  42. hobby: undefined,
  43. toString: function () {
  44. return "继承属性";
  45. },
  46. };
  47. // 序列化对象
  48. var josnstr = JSON.stringify(object);
  49. console.log(josnstr);
  50. // 第二参数如果是数组,可以限制允许序列化的属性
  51. var josnstr = JSON.stringify(object, ["name", "age"]);
  52. console.log(josnstr);
  53. //第二参数不是数组,是函数,可以对对象的属性进行操作
  54. // 参数1:对象的键。参数2:对象的值
  55. var josnstr = JSON.stringify(object, function (key, value) {
  56. switch (key) {
  57. case "name":
  58. return "小明";
  59. // 必须要有default, 才可以输出其它未被处理的属性
  60. default:
  61. return value;
  62. }
  63. });
  64. console.log(josnstr);
  65. // 通过 JSON.parse() 解析数据,这些数据会成为 JavaScript 对象
  66. // 使用单引号
  67. var obj = JSON.parse(josnstr);
  68. console.log(obj);
  69. </script>
  70. </body>
  71. </html>


总结

  • 特殊类型:null 表示空对象 ,undefined 专用于表非对象类型变量的空/无
  • josn属性名: 任何时候都必须添加双引号, 且必须是双引号
  • JSON.parse() 解析josn字符串为json对象
声明:本文内容转载自脚本之家,由网友自发贡献,版权归原作者所有,如您发现涉嫌抄袭侵权,请联系admin@php.cn 核实处理。
全部评论
文明上网理性发言,请遵守新闻评论服务协议