zoukankan      html  css  js  c++  java
  • javaScript学习随笔

    1、<script>标签位置:为增强体验,避免用户较长时间看到空白窗口,<script>元素放在<body>元素中。

    2、js中区分大小写。

    3、js中变量第一个字符可以为字母、下划线、和美元符号$

    4、js中的变量是松散类型的,可以保持任何类型的变量。例如:var message = "hi";

    5、定义变量时,不加var,就是创建了一个全局变量。

    6、js的五种数据类型:undefined、null、boolean、number、string。

    7、用typeof可以查看对象类型,注意typeof是操作符而不是函数。

    8、当表示八进制时,前导值为0,若数值中出现大于7的数字,则自动转换为十进制解析。

    9、数值转换:number可用于任何数据类型,parseInt、parseFloat专门把字符串转换成数值。

    10、parseInt用于转换整数,可以指定进制。例:var num = parseInt("oxAF",16);

    11、paraseFloat不可指定进制。

    12、JS中函数用function声明。

    13、JS的参数实际上可以理解为一个数组,调用时,对参数的传递并不严格校验。例如定义的函数有两个参数,调用时可以传一个或者三个。

      因为JS的参数允许在函数内用arguments进行调用。
      例如:arguments[0]、arguments[1]。

    14、JS不支持重载,因为他并不校验参数个数、类型等信息。

    15、String是JS的基本数据类型。

      五种基本类型:
      Undefined、Null、Boolean、Number、String。
      JS中,只有这五种基本类型是值访问,其他的引用类型是址访问。

    16、访问变量有按值和按址两种方式,但是函数的参数只有按值传递。

    17、在JS中,非基本类型的复制是指向同一内存区域。函数的参数如果是非基本类型的,相当于复制。

    18、函数定义时,参数也不要加类型。

    19、 with 语句可以方便地用来引用某个特定对象中已有的属性,但是不能用来给对象添加属性。要给对象创建新的属性,必须明确地引用该对象。

    20、在if、for代码段中定义的变量,在if、for的代码段执行完后仍然生效,直到当前函数结束才会失效。

    21、基本类型的在内存中占据固定大小的空间,存放在栈中。引用类型的值是对象,存放在堆中。

    22、用点号和方括号都可以访问对象的属性,但是用方括号可以通过变量来访问属性。

      例:

    var propertyName = "name";
    alert(person[propertyName]); //“WuYangChun”

    23、通常,除非必须使用变量来访问属性,否则一般用点号表示法。

    24、在JS中,数组的长度属性并不是只读的,可以通过设置长度删除数组尾部的数据。也可以通过length向尾部插入值。

    25、用数组实现栈的方法,用push(),pop()方法插入值、移除值。

    26、用push()和shift()结合实现队列方法。

    27、正则表达式的形式:

      var expression = /pattern/ flags;
      其中flags的取值可以为以下一个或多个:
      g:全局模式。
      i:表示不区分大小写。
      m:多行模式。

    28、正则表达式的两种用法:

      1、exec方法主要用于获取匹配到的值
      例:

    var text = "cat,bat,sat,fat";
    var pattern1 = /.at/g;
    var matchs = pattern1.exec(text);
    alert(matchs[0]);

      2、test方法主要用于判断是否有匹配的值
      例:

    var text = "cat,bat,sat,fat";
    var pattern1 = /.at/g;
    if(pattern1.test(text)){
        alert("have matching");
    }

    29、 修改属性的特性,需要用Object.defineProperty()方法。

      例:

    Object.defineProperty(){
        对象,属性名,特性设置
    }

    30、创建对象一:工厂模式实例代码:例:

    function createPerson(name,age,job){
        var o = new Object();
        o.name = name;
        o.age = age;
        o.job = job;
    
        o.sayName = function(){
            alert(this.name);
        }
    } 

    31、创建对象二:构造函数模式代码:例:

    function Person(name,age,job){
        this.name = name;
        this.age = age;
        this.job = job;
        this.sayName = function(){
            alert(this.name);
        }
    }

    32、构造函数模式的特点:

      1、没有显式的创建对象。
      2、直接将属性和方法赋值给this对象。
      3、没有return语句。
      4、函数首字母大写。

      缺陷:内部定义的函数其实也是创建了对象,当用构造函数定义多个对象时,相当于重复新建了内部的对象,显得没有必要。

    33、创建对象三:原型模式代码:例:  

    function Person(){}
    Person.prototype = {
      name : "WuYangChun",
      age : 29,
      job : "Software Engineer",
      sayName : function(){
        alert(this.name);
      }
    }

    34、原型模式的特点:

      解决了构造函数模式的缺陷,但所有实例在默认情况下都有相同的属性值。

    35、创建对象四:组合使用构造函数模式和原型模式代码:例:(这是目前使用最广的方法)

    function Person(name,age,job){
        this.name = name;
        this.age = age;
        this.job = job;
        this.friends = ["Shelby","Court"];
    }
    
    Person.prototype = {
        constructor : Person,
        sayName : function(){
            alert(this.name);
        }
    }

    36、构造函数、原型、实例的关系:

      每个构造函数都有一个原型对象,
      原型对象都包含一个指向构造函数的指针,
      实例都包含一个指向原型对象的内部指针。

    37、BOM对象

    window对象是BOM的顶层对象,能超控窗口大小、位置等等。
    location对象用于获取URL以及参数等信息。常用属性为:
        host        "www.baidu.com:80"
        hostname    "www.baidu.com"
        post        "80"
        href        "https://www.baidu.com"
        search        "?q=javascript"
    navigator对象用于检测插件及注册表。
    history用于查看访问历史。 
    38、事件冒泡模型比较适用。
    39、事件处理程序以on开头,如:onclick。
  • 相关阅读:
    linux下启动和关闭网卡命令及DHCP上网
    python 编码问题
    paddlepaddle
    Convolutional Neural Network Architectures for Matching Natural Language Sentences
    deep learning RNN
    Learning Structured Representation for Text Classification via Reinforcement Learning 学习笔记
    Python IO密集型任务、计算密集型任务,以及多线程、多进程
    EM 算法最好的解释
    tensorflow 调参过程
    tensorflow 学习纪录(持续更新)
  • 原文地址:https://www.cnblogs.com/wee616/p/5087132.html
Copyright © 2011-2022 走看看