博客列表 >js数据类型,流程控制,JSON转换

js数据类型,流程控制,JSON转换

老陈
老陈原创
2020年05月21日 18:39:15910浏览

1.数据类型

1.1原始类型:number ,string ,boolean
  1. //number类型
  2. var grade = 89;
  3. //string类型
  4. var username = 'admin';
  5. //boolean类型
  6. var flag = false;
1.2 特殊类型: null ,undefined 都有空/无的意义
  1. //undefined 表示非对象类型变量的空/无
  2. var role;//等同于var role = undefined;
  3. //null表示空对象
  4. var tirle = null ;
  5. //null 转为数值型时,它的值会自动转为0
  6. console.log( null +100 );//等同于console.log( 0 +100 );
  7. // undefined ->返回 NaN(Not a Number 不是数值)
  8. console.log( undefined +100 );
1.3对象类型:arrya(数组),Object(对象) ,function(函数)
  1. //1.数组
  2. var arr = ['赵云','关羽','张飞','马超','黄忠'];
  3. console.log(arr);
  4. // Array.isArray()判断是否是数组类型
  5. console.log(Array.isArray(arr));
  6. //遍历数组
  7. //方法一:
  8. for (var i = 0; i < arr.length; i++) {
  9. //console.log(arr[i]);
  10. }
  11. //方法二:
  12. // arr.forEach(function (元素,元素索引,当前数组));第一个参数是必须的,第二第三参数可选
  13. arr.forEach(function (itme ,index,arr){
  14. // console.log(itme);
  15. });
  16. //2.对象
  17. //js中的数组类似PHP中的索引数组,js中的对象类似于php中的关联数组
  18. var student = {
  19. id:1,
  20. name:"猪八戒",
  21. email:"zhubajie@qq.comm",
  22. "test shuxing":{
  23. like :"喜欢吃",
  24. wuqi:"九齿钉耙",
  25. },
  26. }
  27. //获取对象中的属性
  28. console.log(student.name);
  29. //对象中的属性也是一个对象应这样获取
  30. console.log(student["test shuxing"].wuqi);
  31. //遍历对象
  32. //方法一: for (对象的键名 in 对象) { 对象[键名]}
  33. for (key in student) {
  34. console.log(student[key]);
  35. }
  36. //方法二:借助数组的forEach()进行遍历
  37. //第一步获取键名数组,通过Object.keys()
  38. var keys = Object.keys(student);
  39. keys.forEach(function (a,b,c){
  40. console.log(this[a]);
  41. },student);
  42. //3.函数
  43. function fun1(a,b){
  44. console.log(a + "+" + b + "=" ,a+b);
  45. }
  46. fun1(58,64);
  47. //匿名函数
  48. var fun2 = function (a,b){
  49. console.log(a + "+" + b + "=" ,a+b);
  50. };
  51. fun2(50,80);
  52. //立即调用函数
  53. (function fun1(a,b){
  54. console.log(a + "+" + b + "=" ,a+b);
  55. }(50,60));

2.流程控制

  1. //分支
  2. //单分支
  3. var age = 45;
  4. // if(age > 50)console.log("年龄大了,想退休了");
  5. //双分支
  6. if (age > 50){
  7. // console.log("年龄大了,想退休了");
  8. }else{
  9. // console.log("年龄不够,不能退休");
  10. }
  11. //多分支
  12. if (age > 50 && age <60) {
  13. // console.log("可以提前申请退休");
  14. } else if(age >= 60 && age <65){
  15. // console.log("已到退休年龄,申请退休");
  16. }else{
  17. // console.log("年龄不够,不能申请退休");
  18. }
  19. switch (true) {
  20. case age > 50 && age <60:
  21. console.log("可以提前申请退休");
  22. break;
  23. case age >= 60 && age <65:
  24. console.log("已到退休年龄,申请退休");
  25. break;
  26. default:
  27. console.log("年龄不够,不能申请退休");
  28. break;
  29. }
  30. //循环
  31. var itmes = document.querySelectorAll("ul:first-of-type li");
  32. for (var i = 0; i < itmes.length; i++) {
  33. itmes[i].style.color="red";
  34. }
  35. // while
  36. var itmes = document.querySelectorAll("ul:last-of-type li");
  37. var i = 0;
  38. while (i < itmes.length) {
  39. itmes[i].style.color="blue";
  40. i++;
  41. }
  42. var i=10;
  43. var b=0;
  44. do
  45. {
  46. console.log("您前面还有"+ i +"人");
  47. i--;
  48. }
  49. while(i>b);

3.js转换JSON格式字符串

  1. //对象
  2. var person ={
  3. name:"猪八戒",
  4. age:40,
  5. isMarried:true,
  6. course:{
  7. name:"javaScript",
  8. grade:89,
  9. },
  10. getName:function(){
  11. return this.name;
  12. },
  13. hobby:undefined,
  14. toString:function(){
  15. return "继承属性";
  16. },
  17. };
  18. //通过JSON.stringify()将js对象序列化为json字符串
  19. // var jsonStr = JSON.stringify(person);
  20. //json字符串如下
  21. // {
  22. // "name": "猪八戒",
  23. // "age": 40,
  24. // "isMarried": true,
  25. // "course": {
  26. // "name": "javaScript",
  27. // "grade": 89
  28. // }
  29. // }
  30. // JSON.stringify()第二参数如果是数组,可以限制允许序列化的属性
  31. // var jsonStr = JSON.stringify(person,["name","age"]);
  32. //JSON.stringify() 第二参数不是数组,是函数
  33. var jsonStr = JSON.stringify(person,function(key,value){
  34. switch (key) {
  35. case "age":
  36. return ("年龄就不告诉你");
  37. case "isMarried":
  38. return "管你P事";
  39. // 必须要有default, 才可以输出其它未被处理的属性
  40. default:
  41. return value;
  42. }
  43. //参数三:可以按自己的需求来定制输出结果是怎样的格式
  44. },"---");

总结:js对象序列化为JSON格式的字符串后

1.布尔值、数字、字符串的包装对象在序列化过程中会自动转换成对应的原始值
2.undefined和任意的函数在序列化过程中会被忽略
3.JSON.stringify()函数是用来序列化对象的,无论输入什么,输出的都是字符串类型,可以按自己的需求来定制如何序列化,输出结果是怎样的格式
声明:本文内容转载自脚本之家,由网友自发贡献,版权归原作者所有,如您发现涉嫌抄袭侵权,请联系admin@php.cn 核实处理。
全部评论
文明上网理性发言,请遵守新闻评论服务协议