javascript拾遗
javascript中,只有null和undefined不能拥有方法,其他任何类型都可以在其上定义方法;
字符串既然不是对象,怎么会有属性呢?
只有引用了字符串的属性,那么javascript就会将字符串通过调用new String()的方式转换为对象,这个对象继承了字符串的方法,并被用来处理属性的引用。一旦属性引用结束,这个新创建的对象就会销毁(其实在实现上并不一定创建或者销毁这个临时对象,然而整个过程看起来是这样)。
同字符串一样,数字和布尔值也具有各自的方法:通过Number()和boolean()构造函数创建一个临时对象,这些方法的调用均是来自于这个临时对象,null和undefined没有包装器,所以访问他们的属性会造成一个类型错误。
比如
var s="test";
s.len=4;
var t=s.len;
则t的值是undefined,因为在对s的属性len赋值之后便会销毁这个临时对象,那么该对象已经不存在了,所以在调用s.len的时候会返回undefined。
存取字符串,数字或者布尔值的属性时创建的对象叫做包装对象,它只是偶尔用来区分字符串值和字符串对象,数字和数字对象以及布尔值和布尔值对象。通常,包装对象只是被看做是一种实现细节,而不用特别关注。由于字符串,数字和布尔值的属性都是只读的,并且不能给他们定义新属性,因此你需要明白他们是有别于对象的。
javascript的函数作用域是指在函数内声明的所有变量在函数体内始终是可见的。有意思的是,这意味着变量在声明之前甚至已经可用。javascript的这个特性被非正式的称为声明提前(hoisting),即javascript函数里声明的所有变量(但不涉及赋值)都被“提前”至函数体的顶部。
转载于:https://www.cnblogs.com/Johnzhang/p/3592045.html
javascript拾遗相关推荐
- 【Javascript 拾遗之三】Closure 闭包
说起闭包这个概念,其实是离散数学中的一种定义,而很程序员们耳熟能详但不一定能说清楚它的含义和用途.本文先简单地介绍下离散数学中的闭包,然后再探讨一下Javascript语言中的闭包是如何创建和应用的. ...
- JavaScript 位运算总结拾遗
最近补充了一些位运算的知识,深感位运算的博大精深,此文作为这个系列的总结篇,在此回顾下所学的位运算知识和应用,同时也补充下前文中没有提到的一些位运算知识. 把一个数变为大于等于该数的最小的2的幂 一个 ...
- 【前端工程师手册】JavaScript作用域拾遗
[前端工程师手册]JavaScript作用域拾遗 昨天总结了一些作用域的知识[前端工程师手册]JavaScript之作用域,但是发表完发现忘记了一些东西,今天拾个遗. 昨天说到了JavaScript中 ...
- 巧技拾遗 | JavaScript 中 Array.every 和 Array.map 的巧妙结合
这几天在跟着学一点 vue3 + TypeScript 中表单验证的实例,看到一个实现,觉得非常巧妙. 需求概述 我们有一个列表 funcArr ,里面存放函数,比如 funcArr = [ func ...
- 【☆】javascript数据类型拾遗
一.Array对象 1.两个数组能用< > == ===做比较吗? 答:数组可以用> <进行矩阵比较,比如a=[1,2,3] b=[1,2,4],那么a<b,如果a的数值 ...
- javascript基础拾遗——词法作用域
本来是想写js面向对象笔记(二)关于封装的,但是在敲实例代码的时候,发现对作用域这个东西的概念有点模糊,翻阅了犀牛后,有点感觉了,就想着先记录下此时的感受. 之所以取名叫做词法作用域,是这个概念是js ...
- 拾遗----javascript一些实用方法
1. join() join() 方法用于把数组中的所有元素放入一个字符串.元素是通过指定的分隔符进行分隔的. var ids = []; for(var i = 0 ...
- 《JavaScript凌厉开发 Ext详解与实践》的目录
目 录 第1章 开篇.... 1 1.1 网络开发浪潮..... 2 1.2 RIA三足鼎立..... 2 1.2.1 Flex和OpenLaszlo.. 3 1.2.2 Faces客 ...
- 你应该知道的25道Javascript面试题
题目来自 25 Essential JavaScript Interview Questions.闲来无事,正好切一下. 一 What is a potential pitfall with usin ...
- 基础拾遗------webservice详解
基础拾遗 基础拾遗------特性详解 基础拾遗------webservice详解 基础拾遗------redis详解 基础拾遗------反射详解 基础拾遗------委托详解 基础拾遗----- ...
最新文章
- 数据预处理代码分享——机器学习与数据挖掘
- 基于simulink的永磁无刷直流电机控制系统的仿真研究
- Sublime Text 3添加右键
- 【MFC】工具栏按钮的热点效果
- Lucene知识小总结4:索引的反删除
- unity 编辑器扩展 扩展摄像机的属性查看器
- 洪磊父亲避谈洪磊获释 拘留已过24小时留滞期
- 10款常用Java测试工具
- 由***Web挂机产生的想法!
- 人人想健康!但,健康的,最主要因素,是什么?
- python——os模块获取绝对路径
- android 保留edittext中的文字不被后面添加的文字覆盖_【Go语言绘图】图片添加文字(一)...
- 【2017级面向对象程序设计】作业二
- ffmpeg_struct: AVRational
- 使用socks5将游戏的服务器连接通过本地SS服务器代理连接到加速服务器,实现游戏加速。
- 三菱FX系列PLC教程
- 7价 半导体掺杂_半导体物理学(刘恩科第七版) 全套课件.ppt
- word流程图怎么使箭头对齐_word里流程图的直角箭头怎么画
- 小米 html5定位失败,小米手表GPS定位慢怎么办 GPS定位失败及室内无法定位解决方法...
- macbookair有没有touchbar_高配MacBook Air和低配MacBook Pro选哪个?
热门文章
- python基础之包、模块、命名空间和作用域
- shell基础之编译安装nginx
- bootstrap table 服务器端分页--ashx+ajax
- 阅读《构建执法》11-12章
- 编程菜鸟的日记-初学尝试编程递归
- JavaScript 盖尔-沙普利算法
- 06.Android之消息机制问题
- docker 1.8+之后ubuntu安装指定版本docker-engine
- 安卓(Android)+苹果(Ios)仿微信、陌陌 移动社交APP系统源码,手机IM聊天软件源码,企业即时通讯APP程序源码...
- Struts 2中文件上传