最新公告
  • 欢迎您光临起源地模板网,本站秉承服务宗旨 履行“站长”责任,销售只是起点 服务永无止境!立即加入钻石VIP
  • JavaScript学习(3) - 聊聊原型链- 1. 变量

    正文概述 掘金(阿申申Cindy)   2021-04-25   360

    关键词:JavaScript变量、基本类型、引用类型、instanceof、typeof、Object、Array

    学习思路:学习原型链,需要先了解变量的知识,然后学习对象的创建、对象的原型,最后才是继承的关系

    1. 变量的基本概念

    基本类型引用类型
    概念简单数据段可能由多个值构成的对象数据类型Undefined, Null, Boolean, Number, StringObject赋值var name = 13var name = new Object()
    name.age = 13
    复制引用Var num2 = num1
    num1和num2相互独立,改变num1不影响num2
    var obj2 = obj1
    改变obj1会影响obj2,实际引用的相同对象

    2. 基本类型

    数据类型英文表达式typeOf 返回结果
    未定义undefined"undefined"布尔值Boolean"boolean"字符串String"string"数值Number"number"NullNull"object"函数function"function"

    3. 引用类型

    3.1 检测引用类型 - instanceof

    使用typeof并不能检测出具体是什么引用类型(object, array, date.....)

    例如:null和object的typeof值都是object,无法区分

    1. 判断具体类型 - instanceof - 返回true/false
    // instanceof样例
    var o = new Object()
    
    alert(o instanceof Array)
    alert(o instanceof Constructor)
    alert(o instanceof RegExp)  
    
    1. 对于某些类型,同样可用自身的类型检测方法
    // Array类型 - 检测方法:Array.isArray()
    alert(Array.isArray(colors)) // true
    

    3.2 Object类型

    // 创建Object
    // 1. new一个Object对象,使用Object构造函数,并添加属性
    var person = new Object()
    person.name = "Cindy"
    person.age = 27
    
    // 2. 对象字面量法 - 用JSON对象的方式直接创建
    var person = {
      name: "Cindy",
      age: 27
    }
    // 备注:对象字面量法不设置属性值创建时,同 new Object() 相同
    var person = {} // 和 new Object() 相同
    
    // 对象访问方法
    person.name     // 输出:Cindy
    person["name"]  // 输出:Cindy - 方括号传入string的方法便于传入变量,以动态获取对象中不同值
    

    3.3 Array类型

    // 创建方法
    // 1. new一个Array对象,使用Array构造函数
    var colors = new Array()
    var colors = new Array(20)
    var colors = new Array('red', 'blue', 'yellow')
    var colors = Array("Gray") // 可以不用new
    
    // 2. 数组字面量法
    var colors = []
    var colors = ['red', 'blue', 'yellow']
    
    
    // 对象访问方法
    // 1. Array对象包含length属性
    alert(colors.length) // 3
    
    // 2. Array对象可用下角标引用
    colors[0] = "gray"
    alert(colors[0]) // 输出:“gray”
    

    3.4 Date类型

    • 推荐momentjs库进行时间日期转换
    // 创建一个日期对象,自动获取当前日期
    var now = new Date()
    
    // 接收日期表示字符串,转换为相应日期毫秒数
    Date.parse("6/13/2008")
    
    // 日期格式化
    toDateString()       // 以特定实现的格式显示星期几、月、日和年
    toTimeString()       // 以特定实现的格式显示时、分、秒和时区
    toLocaleDateString() // 以特定于地区的格式显示星期几、月、日和年
    toLocaleTimeString() // 以特定于地区的格式显示时、分、秒
    toUTCString()        // 以特定实现的格式显示UTC日期
    

    3.5 RegExp类型

    使用类似Perl语法,创建正则表达式

    var expression = / pattern / flag
    

    flag - 表名正则表达式行为:

    1. g - 全局模式,应用于所有字符串
    2. i - 不区分大小写
    3. m - 多行模式,到达一行文本末尾时还会继续查找下一行中是否存在与模式匹配的项

    3.6 Function类型(本章节中简要说明,将会在闭包章节中详细说明)

    3.6.1 函数声明方法

    // 函数声明 - 语法:
    function funName (arg0, arg1, arg2) {
      // 函数体
    }
    
    // 函数声明提升 - 调用语句可以在函数声明之前,因为执行前代码会先读取函数声明
    sayHi()
    function sayHi() {
      alert('Hi')
    }
    

    3.6.2 函数表达式法

    // 函数表达式 - 语法 - 将一个匿名函数赋值给一个变量
    // 匿名函数:function没有命名
    var funName = function (arg0, arg1, arg2) {
      // 函数体
    }
    
    // 函数表达式不能进行函数声明提升,调用要在表达式后面
    var sayHi = function () { 
      alert('Hi')
    }
    sayHi()
    

    3.6.3 关于function需要注意的问题:

    1. function指针引用
    // 指针引用
    var sum2 = sum1 // sum1和sum2均指向同一个function内容
    
    1. function没有重载
    // 用指针解释function没有重载
    var add1 = function (num) { return num + 100 }
    add1 = function(num) { return num + 200 } //创建第二个函数的时候,实际上覆盖了第一个引用,故没有重载
    

    起源地下载网 » JavaScript学习(3) - 聊聊原型链- 1. 变量

    常见问题FAQ

    免费下载或者VIP会员专享资源能否直接商用?
    本站所有资源版权均属于原作者所有,这里所提供资源均只能用于参考学习用,请勿直接商用。若由于商用引起版权纠纷,一切责任均由使用者承担。更多说明请参考 VIP介绍。
    提示下载完但解压或打开不了?
    最常见的情况是下载不完整: 可对比下载完压缩包的与网盘上的容量,若小于网盘提示的容量则是这个原因。这是浏览器下载的bug,建议用百度网盘软件或迅雷下载。若排除这种情况,可在对应资源底部留言,或 联络我们.。
    找不到素材资源介绍文章里的示例图片?
    对于PPT,KEY,Mockups,APP,网页模版等类型的素材,文章内用于介绍的图片通常并不包含在对应可供下载素材包内。这些相关商业图片需另外购买,且本站不负责(也没有办法)找到出处。 同样地一些字体文件也是这种情况,但部分素材会在素材包内有一份字体下载链接清单。
    模板不会安装或需要功能定制以及二次开发?
    请QQ联系我们

    发表评论

    还没有评论,快来抢沙发吧!

    如需帝国cms功能定制以及二次开发请联系我们

    联系作者

    请选择支付方式

    ×
    迅虎支付宝
    迅虎微信
    支付宝当面付
    余额支付
    ×
    微信扫码支付 0 元