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# 多少都懂点。重新来过,才发现我们习惯在不知不觉中把自己的思维囚禁。

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

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

      记此日志,与诸君共勉。

      

  • 相关阅读:
    Window 窗口类
    使用 Bolt 实现 GridView 表格控件
    lua的table库
    Windows编程总结之 DLL
    lua 打印 table 拷贝table
    使用 xlue 实现简单 listbox 控件
    使用 xlue 实现 tips
    extern “C”
    COleVariant如何转换为int double string cstring
    原来WIN32 API也有GetOpenFileName函数
  • 原文地址:https://www.cnblogs.com/v10258/p/3072610.html
Copyright © 2011-2022 走看看