美文网首页
0.3 JavaScript Grammar

0.3 JavaScript Grammar

作者: 冰菓_ | 来源:发表于2023-08-09 21:51 被阅读0次
    基础语法
    类型检查

    typeof

    类型转换
    1. 调用string()函数,null和undefined则转化为 'null' , 'undefined'
      null和undefined 调用toString()会报错
    2. js是弱类型语言,在进行计算时会自动的进行运算,注意一个值和一个字符的场景是直接进行拼接的
    自增和自减

    例如 a++和++a 都属于自增运算符,区别是对变量a的值进行自增的时机不同。a++是先进行取值,后进行自增。++a是先进行自增,后进行取值

    逻辑和关系运算符

    三元运算符
    运算符的优先级

    代码块

    块作用域

    流程控制语句

    if
    while
    for

    对象
    可变类型

    在对象创建完成,可以任意修改删除对象中的属性,注意如果有两个变量同时指向一个对象,通过一个变量修改对象时,另一个变量也会受影响

    <!DOCTYPE html>
    <html lang="en">
    <head>
        <meta charset="UTF-8">
        <title>Title</title>
        <script>
            //hello world 测试
            // alert("hello world")
            // console.log('hello world')
            // document.write("hello world")
            // let a = '1'
            // console.log(typeof a)
            // console.log( `${a}`)
    
            // let a = prompt("第一个字")
            // let b = prompt("第二个字")
            // let c = prompt("第三个字")
            // alert(a + b + c)
    
            //案例一:1000元,存款利率为5%,多少年到5000
            let  money = 1000
            let cnt =0
            while (money <= 5000){
                 money *= 1.05
                cnt++
            }
            document.write(cnt)
    
            //使用Symbol通常是不希望外界访问的数据
            let a = new Object();
            a.name = "a"
            a.ui = ""
            let n = Symbol()
            a[n] ="属性"
            document.write(a.name , a[n])
            console.log(a)
        </script>
    </head>
    
    <body>
    
    </body>
    </html>
    

    修改变量 修改对象>>>

    <!DOCTYPE html>
    <html lang="en">
    <head>
        <meta charset="UTF-8">
        <title>Title</title>
        <script>
            //改变值
             const fn = (a) => {
                  a = {}
                  a.name = "abc"
                  console.log(a)
             }
    
           let a  = {name:"bbb"}
           fn(a)
           console.log(a)
    
       //改变对象
             const fn1 = (b) => {
                 b.name = "abc"
                 console.log(b)
             }
    
             let b  = {name:"bbb"}
             fn1(b)
             console.log(b)
    
            // Objectname: "abc"[[Prototype]]: Object
            // js2.html?_ijt=8s6fqhni018uelpbckdaog1o05:15 Objectname: "bbb"[[Prototype]]: Object
            // js2.html?_ijt=8s6fqhni018uelpbckdaog1o05:20 Objectname: "abc"[[Prototype]]: Object
            // js2.html?_ijt=8s6fqhni018uelpbckdaog1o05:25 Objectname: "abc"[[Prototype]]: Object
    
        </script>
    </head>
    <body>
    
    </body>
    </html>
    
    函数

    1. 函数的创建方式
    函数声明
    函数表达式
    箭头函数

    2. 函数的每次调用,都会重新创建默认值
    3. 函数作为参数

            const fn3 = (a) => {
                console.log("hhhh" ,a)
            }
    
            fn3(() => {"hhhhha"})
            //hhhh () => {"hhhhha"}
    

    4. 函数的返回值
    5. 作用域
    6. 变量的提升
    7. debug
    8. 函数中的this
    以函数形式调用和以方法形式调用

            const  obj = {
                 name :"tom",
                 fn3,
                 f(){
                     console.log(this.name)
                     function f1() {
                         console.log(this)
                     }
                     f1()
                 }
    
            }
    
            obj.f()
    

    类是创建对象的模板
    1. 构造函数
    2. 封装,多态,继承
    安全性,扩展性,灵活性
    3. 原型
    原型对象(prototype)对象中还有一些内容,会存储到其他的对象里(原型对象)在对象中会有一个属性用存储原型对象,这个属性做_ proto_原型对象也负责为对象存储属性当我们访问对象中的属性时,会优先访问对象自身的属性对象自身不包含该属性时,才会去原型对象中引找会添加到原型对象;原型的作用原型就相当于是一个公共的区域,可以被所有该类实例访问,可以将该类实例中,所有的公共属性(方法)统一存储到这样我们只需要创建一个属性
    4. this
    根据函数调用方式的不同,this的值也不同
    1.以函数形式调用,this是 window
    2,以方法形式调用,this是调用方法的对象
    3.构造函数中,this是新建的对象
    4,箭头函数没有自己的this,由外层作用域决定

    数组

    1. for-of语句
    2. 深拷贝和浅拷贝
    JavaScript数组方法(最全)

    闭包

    1. 回调函数
    2. 闭包的生命周期

    其他

    1. 可变参数
    2. call和apply
    3. bind
    4. 数组的解构
    5. 对象的解构
    6. 正则表达式
    7. exec方法
    8. 垃圾回收机制
    9. Math库
    10. Date库

    相关文章

      网友评论

          本文标题:0.3 JavaScript Grammar

          本文链接:https://www.haomeiwen.com/subject/cflzudtx.html