• JavaScript学习笔记及知识点整理_2


    1.一般而言,在Javascript中,this指向函数执行时的当前对象。举例如下:

    var someone = {
        name: "Bob",
        showName: function(){
            alert(this.name);
        }
    };
    
    var other = {
        name: "Tom",
        showName: someone.showName
    }
    
    other.showName();  //Tom

    this关键字虽然是在someone.showName中声明的,但运行的时候是other.showName,所以this指向other.showName函数的当前对象,即other,故最后alert出来的是other.name。

    当没有明确的执行时的当前对象时,this指向全局对象window。

    var name = "window";
    
    var Bob = {
        name: "Bob",
        showName: function(){
            alert(this.name);
        }
    };
    
    var Tom = {
        name: "Tom",
        showName: function(){
            var fun = Bob.showName;
            fun();
        }
    };
    
    Tom.showName();  //window

    想要让它输出Tom,可以使用下面的代码:

    var name = "Bob";  
    var nameObj ={  
        name : "Tom",  
        showName : function(){  
            alert(this.name);  
        },  
        waitShowName : function(){
            var that = this;
            setTimeout("that.showName();", 1000);
        }
    }; 
     
    nameObj.waitShowName();

    2.在if语句中,各个类型变量的判定如下:
    String类型有内容判断true,无内容,判断为false,Number类型的变量,1判断为true,0判断为false.对于对象来说,为null为false,而不为null则为true

    <head>
            <meta charset="UTF-8">
            <title>测试各个范围的变量在if</title>
        </head>
        <body>
            
        </body>
        <script>
            var a;    //测试undefined
            if(a) {
                alert('a is true '+a);
            }
            else {
                alert('a is false '+a);
            }
            /**
             * 测试结果在a为undefined的时候,在if语句内判断为false
             */
            var b="";    //b为没有内容的字符串
            if(b) {
                alert('b is true' +b);
            }
            else {
                alert('b is false '+b);
            }
            /**
             * 测试结果在b为空字符串 的时候,if语句判断为false
             */
            var c="abc";
            if(c) {
                alert('c is true'+c);
            }
            else {
                alert('c is false '+c);
            }
            /**
             * c为有内容的字符串,if语句中判断为true
             */
            var d=1;
            if(d) {
                alert('d is true'+d);
            }
            else {
                alert('d is false'+d);
            }
            /**
             * d为1,在if语句判断为true
             */
            var e=0;
            if(e) {
                alert('e is true'+e);
            }
            else {
                alert("e is false"+e);
            }
            /**
             * e为0,在if语句中判断为false
             */
            var f=new Array(4);
            if(f) {
                alert('f is true '+f);
            }
            else {
                alert('f is false '+f);
            }
            /**
             * 如果f为对象的话,就为true,当f为null的时候,为false
             */

    3.HTMLDOM对象可以理解为和获取Java对象的属性一样,例如获取了一个div元素div,它有个style属性,style属性里可以设置display属性的值,因此就直接使用div.style.display=''inline";这里注意一点,这种方法只能获取属性.但是不代表嵌套的元素可以获取.例如如果bldy中只有一个子元素叫做div,那么是不存在body.div的.相关的HTMLDOM元素需要看文档才能弄清楚.
    4.javascript中的document.write属性:它支持在文档中写内容.但是它会将文档中原有的内容全部覆盖!所以一般不用于去写内容.
    5.javascript变量的重新声明:如果重新声明javascript变量,该变量的值不会丢失.例如:

    var x=2;
    var x;    //x依然为2.

    6.js对象的属性的寻址有两种方式:name=person.lastName,name=person["lastName"].
    7.js对象的生命周期:js变量的生命从它们被声明开始,然后局部变量会在函数运行以后被删除,全局变量会在页面关闭后删除.

    8.js中只有两种循环:for循环和while循环.
    9.typeof和Instance of区别:typeof判断元素的数据类型,返回的是string,而instanceof则判断的是某个对象是否属于某个引用类型.返回的是boolean.需要注意的是,用var定义的变量如果是字符串数据类型也只是string.用instance of String依然返回false.

    <script>
            var a='abc';
            var b=new String('abc');
            alert("var--"+(a instanceof String));
            alert("new--"+(b instanceof String));
        </script>

    10.js中的void运算符:
    • void后面的任意结果都会被转移成undefined,因此采用void(0)来代替undefined更加安全可靠.
    • void可以填充a的href确保点击之后不会发生跳转,这就是页面中经常看到的javascript:void(0)(javascript的内嵌引入,不执行任何操作)
    11.js中的parseInt函数:
    解析字符串,并将其转化为整数:与Java的parseInt不同的是,它会试图从字符串的第一个字符开始按照顺序解析,直到遇到非数字.如果字符串第一个字符就是非数字,则不会进行解析.例如parseInt(2.32)为2,parseInt(12a)为12
    12.js的关系运算符:js的关系运算符和==运算符一样,会在比较的时候,试图进行类型转换.例如:11>"2"则返回为true

  • 相关阅读:
    新手建站必看
    88.com域名邮箱免费注册了
    屏蔽博客园的广告
    跳过烦人的hCaptcha验证
    pap.er 专为 Mac 设计的壁纸应用
    TrafficMonitor
    利用CloudFlare自动DDNS
    P.SDA1.DEV
    谷歌浏览器又隐藏的HTTPS和WWW前缀
    谷歌浏览器扩展 crx 下载
  • 原文地址:https://www.cnblogs.com/hlhdidi/p/5983008.html
Copyright © 2020-2023  润新知