javascript . 05 json的组成、for...in 遍历对象、简单数据类型与复杂数据类型的传值与传址、内置对象

对象字面量  JSON

    var obj = { aaa :999};  

    var json={"aaa":999,“bbb”:888};

          ”kay“:value

  对象字面2⃣️定义方法和json很像,只有一点不同,json的key 必须加“”   ;

  对象,数组也可以作为键值

JSON的组成

    Javascript Object Notation 对象字面量的一种表现形式 ;

      键名必须有双引号“”包围  ;

    为什么用JSON :对于AJAX应用程序来说,JSON比XML更快更易使用 ;

  JSON语法规则:JSON语法是Javascript对象表示语法的子集:

      a、数据在名称/值对中

      b、数据由逗号分开

      c、花括号保存对象

      d、方括号保存数组

  JSON的值可以是:

    a 、 数字(整数或浮点数)

    b、 字符串(在双引号中)

    c、 逻辑值(true或false)

    d、数组 (在方括号中)

    e、对象(在花括号中)

    f、 null  

for…in..遍历对象

  

  1. 由于对象本身没有length属性,所以不能用for循环遍历
1.    var json = {  //创建一个对象
    "name" : "赵四",
    "sex" : "男",
    "sayHi" : function (){
        console.log(json.name + ",你好!");
    }
}
for (var key in json){
    console.log(key);//打印键名,不打印键值
    console.log(json[key]);//打印键值
}

伪代码:类

  1. 强类型语言是用class定义对象
  2. JS的ES6提到了class

传值和传址

一、简单类型数据做参数,函数内部对参数的修改不应影响外部变量

简单类型传数值。

    简单数据类型保存在栈中

      变量保存的事数据本身/函数调用传递的是值不是地址/压栈,先进后出/地址值:哈希值

二、复杂类型数据做参数,函数内部对参数的修改会应影响外部变量

复杂类型传地址。

    简单数据类型保存在堆中

      变量保存的事数据的地址

    

var num =;
fun(num);
console.log('+++' + num );
function fun(a) {
a = a * ;
console.log(a);
}
var arr = [,,];
fun1(arr);
console.log(arr);
function fun1(array) {
//arr和array是指向的同一个内存地址
// 函数修改array地址内的内容,arr的内容同时也被修改
array[] = ;
console.log(array) ;

内置对象

  

  1. JS中已经定义好的对象。创建之后可直接使用
  2. Date、Array、Math、Regexp(正则表达式)、Error、String、Number
  3. 主要学习内置对象的API,H5的方法

a)  调用者:有无调用者

b)  参数:有无,几个

c)  功能:干什么用的

d)  返回值:有无,什么类型

  1. 学习方法:手册,MDN
  2. API:应用程序接口
上一篇:delphi中nil、null、UnAssigned区别


下一篇:java方法中,传参是传值还是传址问题(对比C语言、C#和C++)