值传递、引用传递、对象、数据渲染、严格模式

01.值传递引用传递

基本数据类型:string、number、boolean、null、undefined;

引用类型(复合类型):object对象!

基本数据类型:存储在栈

引用类型:堆

1.值传递:

值传递:传递的是基本数据类型的数据(数据不会发生改变)

原理:因为常量不可改变

2.引用类型:

引用传递:传递的对象(数组、对象)

原理:对象存储在堆空间中,自身可以发生改变

3.如果想copy整个数组:(有两种方法)

1:for循环

2:slice();

1.值传递:
var a = 10;
var b = a;
var b = 20;
console.log(a,b);    //10 20
2.引用类型(数组):
var arr1 = [1,2,3,4,5];
var arr2 = arr1;
arr2[0] = 2;
console.log(arr1);  //(5) [2,2,3,4,5] (对象存储在堆空间中,自身可以发生改变)
//第一种copy数组的方法(for循环)
for(var i = 0 ; i < arr1.length ; i++){
    arr2.push(arr1[i]);
}
arr2[0] = 2222;
console.log(arr2);    //(5) [2222, 2, 3, 4, 5]
console.log(arr1);    //(5) [1, 2, 3, 4, 5]

//第二种copy数组的方法(slice(),截取数据, start和end都不写,返回整个数组arr,常用来快速复制到数组.)
var arr2 = arr1.slice();
arr2[0] = 22;
console.log(arr2);   //(5) [22, 2, 3, 4, 5]
console.log(arr1);    //(5) [1, 2, 3, 4, 5]

02.对象

1.对象

js里面的一个数据类型,引用类型

引用类型是一种数据结构,用于将数据和功能组织在一起

2.对象 ——> 属性和方法

属性就相当于对象内部的私有变量

3.创建对象的方法

(1)构造函数:

var people = new Object();

(2)字面量:

var obj = {};

4.给对象添加属性和方法

people.name = 'xiaoming';
people.age = '20',
people.sex = 'nan',
people.play = function(){
    console.log("玩耍");
}

5.删除属性和方法:

delete obj.name;

6.JSON

JSON是一种轻量级的数据存储格式!键值对 json规定属性和属性值必须放在引号里面

{
    'name' : 'wang',
    'sex' : 'nan',
    'age' : 20
}

注:如果一个对象的属性是一个变量的情况下,怎么添加属性???

obj[变量名称] = 值

怎么遍历对象??? for in 循环

for(var key in obj){

}
简单操作:
//json格式
var xiaodingdang = {
    age : 20,
    sex : "nan",
    height : 180,
    weight : 100,
    play : function(){
        console.log("玩耍");
    }
}
//console.log(xiaodingdang);
xiaodingdang.play();

//对象遍历,i为键
for(i in xiaodingdang){
    console.log(xiaodingdang[i]);
}

03.数据渲染

把数据渲染在页面上

循环遍历整个数组

根据数组的下标获取的是某个对象,然后从里面获取对应的属性值

<style>
    *{
    margin : 0; 
    padding : 0;
}
    .goodBox{
        margin:10px auto;
        width:1200px;
        overflow:hidden;  /*防止高度塌陷*/
    }
.goods{
    width:200px;
    height:350px;
    border:1px solid red;
    margin:10px;
    float:left;
}
.goods a{
    width: 190px;
    height:250px;
    display:block;
    margin:4px auto;
}
.goods a img{
    display:block;
    width:100%;
    height:100%;
}
.goods h2{
    font-size:20px;
    color:red;
    text-align:center;
}
.goods p{
    padding:5px;
    font-size:12px;
    color:#ccc;
    line-height:20px;
}
</style>

<section class="goodBox" id="box">
    <!-- <div class="goods">
            <a href="#"><img src="" alt=""></a>
            <h2>price</h2>
            <p></p>
        </div> -->
</section>
<script>
                //模拟数据 
                var goods = [
                    {
                        id : 01,
                        price : '1000',
                        imgSrc : 'http://img13.360buyimg.com/n7/jfs/t1/26123/4/9617/119461/5c8082e6Eb533f3fc/f53c4b1b39676fa9.jpg',
                        title : '【特步正品官方】满199立减10,满299立减20,满399立减30,火爆开启,点击查看热卖尖货!'
                    },
                    {
                        id : 02,
                        price : '200',
                        imgSrc : 'http://img10.360buyimg.com/n7/jfs/t1/58638/8/6570/143338/5d4658d3Eeb186fc7/c979efb1c3cdc95a.jpg',
                        title : '范华尼 短袖t恤男2019夏季新款潮流修身半袖体恤男士休闲上衣打底衫POLO衫男 深灰 XL!'
                    },
                    {
                        id : 03,
                        price : '5000',
                        imgSrc : 'http://img10.360buyimg.com/n7/jfs/t1/41293/26/9137/126467/5d29665fEad149728/f5cb00de507f609f.jpg',