zoukankan      html  css  js  c++  java
  • JavaScript 随笔

    Javascript 函数及作用域
    形参 实参
    作用域
    域解析
    脚本语言生成之后过度 生成原理
    经过预处理以后 生成什么样的函数代码
    闭包 有什么用处 深入的东西

    argument

    函数 涉及的意义就是为了是实现代码的复用
    把特定功能的打包 放在一起 下次使用的时候只要调用包裹就可以了
    这就是所谓的函数
    具体看下函数如何实现代码的复用
    每天十点 给自己打鸡血
    函数的语法

    关键字 function 代表我后面的就是函数了
    不好意思 现在我要展现真正的技术了
    名称
    后面跟小括号 
    小括号后放参数 参数有什么用的 
    然后就是执行的语句 
    
    function 函数(参数){
    执行语句
    }
    

    多次使用 直接调用
    执行函数一定要带上括号 函数(参数)

    作用域 可访问变量的集合
    定义一个变量 这个变量可以被使用的地方
    定义一个变量 a = 10
    只是以函数划分 分为两个
    全局作用域 局部作用域
    全局变量 局部变量

    所有地方都能被访问到
    局部变量只能在定义函数的内部访问到

    在函数体外定义的变量 全局变量
    函数内部定义的变量 局部变量

    函数闭包
    局部变量 其次实现具有全局变量的生命周期
    function 里面再来个function

    function add(){
    var count = 0
    plus : function(){
    
    }
    }
    

    js 基本上所有东西都是对象
    类和对象
    对象的存储机制
    增删改查
    系统提供很多很实在的对象
    系统打包了很多库供我们使用

    变量 var
    函数 function 一堆语句的集合
    对象 其实就是一堆变量加上一堆函数的集合
    很多时候 js就是把一些基本的因素进行封装
    对象的创建 其实就是一个字典 包含key 和 value

    var obj = {
    a : 1,
    b : 2,
    'first name' : 'lirui' 
    }
    

    new Object()也可以创建一个空对象
    属性名:属性值
    属性名中间有特殊字符的必须加上引号

    对象属性的基本操作 增删改查 遍历
    必须写引号的属性 必须使用[]来获取 obj['first name']
    delete obj.a 删除操作

    为了区分函数和类
    不能使用局部变量来定义

    function PersonClass(){
    this.name = "xiaoming"
    }
    

    es6使用 class来定义一个类

    class personCla {
      constructor(name) {
        this.name = name
      }
    }
    

    命名空间

    widnow.location 完整的网址

    浏览器 多线程
    解析js UI渲染 浏览器 定时器的线程 各种轮询等
    在处理js这件事情上 是单线程的
    js单线程 是什么概念呢。只有一个线程去处理和js相关的事情 排队
    编程的时候方便一点 多线程会复杂很多
    我们有一张银行卡。我要给银行卡充钱 我老婆去银行卡取钱
    如果是多线程 两个动作发生就会出现问题
    如果是单线程就没有任何问题

    Dom树 生成dom树 第一步 添加dom树的节点
    一直添加 继续添加 哎 发现 有个script 引用外部文件
    dom树就卡住了 开始下载外部文件到本地
    下载完成以后开始用js解析器对下载的脚本进行解析
    这时候js脚本就已经开始执行了
    执行完成之后继续执行dom树
    一直到dom树生成完毕为止
    解析完成 开始展示给用户看
    展示给用户的时候还有一些文件在下面
    比如一些图片下载
    等待文件下载完成。就结束了
    页面载入完成进入

    延迟加载
    异步加载

    怎么去操作Dom树

    删除节点
    removeChild
    添加节点
    appendChild

    自己删除自己
    寻找父节点删除自己

    var div2 = document.getElementById("div2")
    div2.parentNode.removeChild(div2)
    

    通过获取节点,然后修改节点属性

    var div2 = document.getElementById("div2")
    // div2.parentNode.removeChild(div2)
    div2.style.height = "300px";
    div2.style.width = "5px";
    

    JavaScript构造函数具备隐式返回操作

        <script>
            //构造函数一般使用大写字母开头
            function Foo(name) {
                this.name = name,
                    this.showName = function showName() {
                        console.log(this.name)
                    }
            }
    
            var obj = new Foo("卧槽");
            obj.showName();
            var obj2 = new Foo("卧槽2");
            obj2.showName();
       //使用系统方法定义对象
             var obj = new Object();
            obj.name = "name";
            var obj2 = {
                name: "name"
            };
            
            构造函数Foo的showName对象就被初始化了两次,而我们并不需要如此,可使用原型来处理
               //原型 共享对象方法
            Foo.prototype.showName = function showName() {
                console.log(this.name)
            }
            这样obj 和 obj2就公用一个showName方法
        </script>
    
  • 相关阅读:
    springmvc学习笔记---idea创建springmvc项目
    Spring Boot中使用Swagger2构建RESTful API文档
    Dubbo原理实现之使用Javassist字节码结束构建代理对象
    Dubbo启动时服务检查
    Dubbo原理实现之代理接口的定义
    dubbo实现原理之动态编译
    Dubbo实现原理之基于SPI思想实现Dubbo内核
    dubbo实现原理之SPI简介
    Spring中使用StandardServletMultipartResolver进行文件上传
    SpringCloud之Feign
  • 原文地址:https://www.cnblogs.com/lidarui/p/JavaScript.html
Copyright © 2011-2022 走看看