JS学习日记2

一:
变量是动态变量,也就是可以存储任何类型,不需要声明变量的类型 (区别c语言)
在这里插入图片描述
二:交互
在这里插入图片描述
附加其余:
空值合并运算符:
?? 运算符从一列变量中,选取值为已定义的值(defined value)的变量。a ?? b 的结果是 a,除非 a 为 null/undefined,这时结果是 b。

比较运算符:
对不同类型的值进行相等检查时,运算符 == 会将不同类型的值转换为数字(除了 null 和 undefined,它们彼此相等而没有其他情况),所以下面的例子是相等的:

三:对象
1.创建空对象
let user = new Object(); // “构造函数” 的语法
let user = {}; // “字面量” 的语法
可以用多字词语来作为属性名,但必须给他们加上引号
“likes birds”: true // 多词属性名必须加引号
属性之间用逗号结尾换行

2.多词属性的访问(方括号)

在这里插入图片描述
附加:
(1)方括号同样提供了一种可以通过任意表达式来获取属性名的方法
let key = “likes birds”;
// 跟 user[“likes birds”] = true; 一样
user[key] = true;

更多的应用如下:(计算属性)
(1)

   <script>
        let user={
             name:'john',
             age:19
        };
        let key=prompt('what do you want to know about');
        //如果输入的是name 则返回的是姓名,如果输入age,返回年龄
        alert(user[key]);
        //但是不能采用:let key = "name";
        //alert( user.key ) 
        
   </script>

(2)

   <script>
        let fruit=prompt('whhile fruit you want');
        let user={
             [fruit]:5,
        };
        //最后两句等价,但是user.fruit是undefined结果
        alert(user.apple);
        alert(user[fruit]);

       //如下实现也可
        let user={
             fruit:5,
        };
        alert(user.fruit);
   </script>

3.属性简写
属性名跟变量名一样。这种通过变量生成属性的应用场景很常见,在这有一种特殊的 属性值缩写 方法,使属性名变得更短。
例如name:name
age:age
所以即可在对象内直接缩写为name,age

4.遍历所有属性(for…in…)

   <script>
        //let fruit=prompt('whhile fruit you want');
        let user={
             fruit:5,
             age:16,
             name:'jhon'
        };
        for(let key in user)
        {
             alert(key);
             alert(user[key]);//如果是user.key则结果为undefined
        }
   </script>

注意:
以下的输出顺序是按照属性大小来的,而不是总从代码之中书写的位置

   <script>
        //let fruit=prompt('whhile fruit you want');
        let user={
            '2':'二傻',
            '3':'三傻',
            '1':'大傻',
        }

        for(let key in user)
        {
        //输出顺序依次是:大傻、二傻、三傻,从小到大
             alert(user[key]);
        }
   </script>

对于上述问题的解决办法是,让整数属性改变,就可以按照书写顺序输出
let user={
‘+2’:‘二傻’,
‘+3’:‘三傻’,
‘+1’:‘大傻’,
}

4.属性存在的检查
‘属性名’ in 对象名
例如: alert(‘fruit’ in user)

2.属性的删除
delete user.age;

3.const声明的对象是能被修改的

   <script>
        const sum={
             name:'jony',
             age:18
        };
     sum.name='pete';//可以改变
     alert(sum.name);
   </script>

const 声明仅固定了 sum 的值,而不是值(该对象)里面的内容。
仅当我们尝试将 sum=… 作为一个整体进行赋值时,const 会抛出错误。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值