博客列表 >前端 - JS - 数据类型、流程控制和将JS对象序列化为JSON字符串

前端 - JS - 数据类型、流程控制和将JS对象序列化为JSON字符串

郴
原创
2020年05月26日 09:47:28751浏览

前端 - JS - 数据类型、流程控制和将JS对象序列化为JSON字符串

一、数据类型

1. 概述

序号 分类 描述
1 原始类型 string、number、boolean、null、undefined
2 复合类型 array、object、function
  • null表示空对象
  • undefined表示非对象类型变量的空/无

2. 数组

  • 每个数组对象都有Length属性,表示数组中元素的个数
  1. <script>
  2. var arr = ['小明', '男', 18];
  3. console.log(arr.length);
  4. </script>

  • 使用for循环遍历数组元素
  1. <script>
  2. var arr = ['小明', '男', 18];
  3. for (var i = 0; i < arr.length; i++) {
  4. console.log(arr[i]);
  5. }
  6. </script>

  • 使用forEach()遍历数组元素
  1. <script>
  2. var arr = ['小明', '男', 18];
  3. arr.forEach(function(item, index, arr){
  4. console.log(item);
  5. })
  6. </script>

  • 使用slice()获取部分元素
  1. <script>
  2. var arr = ['小明', '男', 18, 'xiaoming@xm.cn'];
  3. var new_arr = arr.slice(1, 3);
  4. console.log(new_arr);
  5. </script>

  • 使用splice()插入、替换和删除元素
  1. <script>
  2. var arr = ['小明', '男', 18, 'xiaoming@xm.cn'];
  3. //插入
  4. arr.splice(3, 0, '北京大学', '计算机一班');
  5. console.log(arr);
  6. </script>

  1. <script>
  2. var arr = ['小明', '男', 18, 'xiaoming@xm.cn'];
  3. //替换
  4. arr.splice(2, 2, '北京大学', '计算机一班');
  5. console.log(arr);
  6. </script>

  1. <script>
  2. var arr = ['小明', '男', 18, 'xiaoming@xm.cn'];
  3. //删除
  4. arr.splice(2, 2);
  5. console.log(arr);
  6. </script>

3. 对象

  • 定义一个对象
  1. <script>
  2. var obj = {name: '小明', sex: '男', age: 18, email: 'xiaoming@xm.cn', study: {
  3. school: '北京大学',
  4. class: '软件工程一班'
  5. }};
  6. console.log(obj);
  7. </script>

  • 访问对象
  1. var obj = {name: '小明', sex: '男', age: 18, email: 'xiaoming@xm.cn', study: {
  2. school: '北京大学',
  3. class: '软件工程一班'
  4. }};
  5. console.log(obj.study.school);
  6. console.log(obj["study"]["class"]);

  • 使用for…in遍历对象
  1. <script>
  2. var obj = {name: '小明', sex: '男', age: 18, email: 'xiaoming@xm.cn', study: {
  3. school: '北京大学',
  4. class: '软件工程一班'
  5. }};
  6. for (key in obj) {
  7. console.log(obj[key]);
  8. }
  9. </script>

  • 使用forEach()遍历对象
  1. <script>
  2. var obj = {name: '小明', sex: '男', age: 18, email: 'xiaoming@xm.cn', study: {
  3. school: '北京大学',
  4. class: '软件工程一班'
  5. }};
  6. var obj_key = Object.keys(obj);
  7. obj_key.forEach(function(item, index, arr){
  8. console.log(this[item]);
  9. }, obj);
  10. </script>

4. 函数

  • 匿名函数也叫函数表达式

  • 立即调用函数:给函数套个括号

  1. <script>
  2. (function sayName(name){console.log(name)})('小明');
  3. </script>

二、流程控制

1. 分支

序号 类型 语法
1 单分支 if(){...}
2 双分支 if(){...} else {...}
3 多分支 if(){...} elseif {...} else {...}
4 switch switch() {case: ... break...}

2. 循环

序号 类型 语法
1 入口判断型 while(){...}
2 计数型 for(){...}

三、将JS对象序列化为JSON字符串

1. 简单转换

  1. <script>
  2. var obj = {name: '小明', sex: '男', age: 18, email: 'xiaoming@xm.cn', study: {
  3. school: '北京大学',
  4. class: '软件工程一班'
  5. }};
  6. var json_str = JSON.stringify(obj);
  7. console.log(json_str);
  8. </script>

2. 指定属性转换

  1. <script>
  2. var obj = {name: '小明', sex: '男', age: 18, email: 'xiaoming@xm.cn', study: {
  3. school: '北京大学',
  4. class: '软件工程一班'
  5. }};
  6. var json_str = JSON.stringify(obj, ['name', 'sex']);
  7. console.log(json_str);
  8. </script>

3. 为每个属性执行回调

  1. <script>
  2. var obj = {name: '小明', sex: '男', age: 18, email: 'xiaoming@xm.cn', study: {
  3. school: '北京大学',
  4. class: '软件工程一班'
  5. }};
  6. var json_str = JSON.stringify(obj, function(key, value){
  7. if (key === 'name') {
  8. return '小王';
  9. } else {
  10. return value;
  11. }
  12. });
  13. console.log(json_str);
  14. </script>

4. 格式化

  1. <script>
  2. var obj = {name: '小明', sex: '男', age: 18, email: 'xiaoming@xm.cn', study: {
  3. school: '北京大学',
  4. class: '软件工程一班'
  5. }};
  6. var json_str = JSON.stringify(obj, function(key, value){
  7. if (key === 'name') {
  8. return '小王';
  9. } else {
  10. return value;
  11. }
  12. }, 4);
  13. console.log(json_str);
  14. </script>

四、课程总结

  • 今天学习了 JavaScript 的基础知识和JSON序列化,通过上课认真听讲和认真完成老师布置的作业,使得我对 JavaScript 的理解和运用更加深入和熟悉。最主要的知识点是明白和掌握了JSON序列化的特点以及JSON.stringify()的基本语法。
声明:本文内容转载自脚本之家,由网友自发贡献,版权归原作者所有,如您发现涉嫌抄袭侵权,请联系admin@php.cn 核实处理。
全部评论
文明上网理性发言,请遵守新闻评论服务协议