zoukankan      html  css  js  c++  java
  • 灵活的Javascript

      高手请一笑视之......, 新手可以重新认识一下js.

    Javascript类型转换

    数据类型/目标类型Boolean (  )Number ()String ( )
    Boolean   0,1 "false" "true"
    Number ( 等于0的值 or 非数字 ) —> false   等于自身加引号,如:(123 -> "123")
    String "" —> false

    Number() 整体转化,无法转化则为:NaN

    parseInt() 从左边数字截取,如:(123aaa -> 123)

    parseFloat() 从左边数字截取识别点,如:(123.4aaa -> 123.4)

     
    Array true 恒成立 空数组为0 其他:NaN 顺序输出数组元素,如:(1,2,3)
    Object true 恒成立 NaN "[object Object]"
    Null false 0 "null"
    Undefined false NaN "undefined"
      var obj= new Object();
            obj.a = "aaa";
            obj.b = "bbb";
        console.log(obj.a,obj);  // aaa,Object { a="aaa", b="bbb"}

      实例化一个对象,添加属性并赋值,大家都用过,没什么可说的。

        var fun = function(){
            this.a = "aaa";
            this.b = "bbb";
        };
        console.log(fun.a,fun);  // undefined,function()
        
        var funExample = new fun();
        console.log(funExample.a,funExample); // aaa Object { a="aaa", b="bbb"}

      首先定义了一个构造函数;看输出 构造函数未实例化之前属性不可用,fun是一个函数类型。

      实例化后属性 a = "aaa" ,funExample是一个Object类型,没错,js就是这么光棍,拿个函数实例化一下,就是一个对象了(其实function本质上就是一个object,array也一样.)

      如下:

        var assignArr = ['a','b','c'];   // 字面量声明数组
    
        assignArr[3] = 'd'              // 向数组中添加一个元素
        
         assignArr['e'] = 'e';             // 关联数组就是这样诞生的
    
         assignArr.f = "fff";           //亮了吧
    
        console.log(assignArr,assignArr[5],assignArr['f']);

       声明一个数组,添加元素, 再次添加元素,注意:Javascript没有关联数组 只是我们可以通过这种方法实现关联数组的功能。 assignArr.f = "fff" 等于给 assignArr 对象添加属性并赋值。 输出结果 assignArr是一个数组,assignArr[5] undefind ,assignArr['f'] 是"fff" 。

      再来看一个

        var fun = function(){};
            fun.a = "aaa";
            fun.b = "bbb";

      这是个什么玩意? 来看一下结果

        console.log(fun.a,fun); // aaa function()

      fun.a 是一个属性 (在此,当我们把它当做一个对象来用的时候它就是一个对象), fun是一个函数(你把我当对象啊?我不是哩)。  ——不要过多纠结,已经提到过function本质上就是object,可以按照对象的方式来使用,在javascript面向对象程序设计中理解这一点非常重要。

      上面的用法很少见吧,我之前没见过呢,但jQuery中就这样用了,用的很抽象.

    jQuery = function( selector, context ) {
        return new jQuery.fn.init( selector, context, rootjQuery );
    }
    
    jQuery.fn = jQuery.prototype = {
        constructor: jQuery,
        init: function( selector, context, rootjQuery ) {
                ......
        }
    }  

       怎么样? 有没有被抽了一下的感觉,如果你是搞其他语言开发的,看到这样的用法有木有 亮瞎了,看伤你。。。

       讲不讲道理,有木有规范,想当年一个简单的 C 语言加减乘除,少个逗号、缺个分号、中英文标点不分,对着书本一个符号一个符号输入,末了出错,删掉重来。。。把人坑的分外忧伤... 格式,规范? 那种数据类型能做什么,该怎样用? 那种编程技巧很不错,值得借鉴。

      如今 Javascript、PHP、C# 多少都懂点。重新来过,才发现我们习惯在不知不觉中把自己的思维囚禁。

      在认知的世界,啃着前辈们的经验,享受着拿来主义的便捷,其本质使自己停滞不前。

      编程语言,究其本质只是一种工具,在具有的规则内,我们可以尽情尝试,探索,追求进步。

      记此日志,与诸君共勉。

      

  • 相关阅读:
    【Python第九篇】异步IO数据库队列缓存
    【Python第八篇】线程、进程及协程
    【Python第七篇】Socket网络编程
    实验五全部代码,ajax请求
    添加员工
    联级选择
    查询,利用jquery选择器
    列表、表格单选框
    注册
    聊天框
  • 原文地址:https://www.cnblogs.com/v10258/p/3072610.html
Copyright © 2011-2022 走看看