javascript函数
来源:互联网 发布:大众排放门 知乎 编辑:程序博客网 时间:2024/05/16 02:29
ECMAScript 是 javascript 的官方命名。他们有不同名字的原因是因为“Java”已经被注册为商标(属于 Oracle)。目前,只有Mozilla被正式允许使用“JavaScript”名称,因为很久以前他们等到一份许可。因此,开放的语言标准拥有不同的 名字。一般来讲遵循以下应用规范: 编程语言称为JavaScript语言标准称为ECMAScript
原始类型JavaScript 定义了不同值类型
- 原始值包括 number、string、boolean、null 和 undefined
- 所有其他的都是对象
两者之间的主要区别是,如何比较值:每一个对象都有独一无二的标示,并且仅仅和自己相等。
var obj1={}; var obj2={}; obj1===obj2? false ;obj1 === obj1 true
相反,所有原始类型只要值内容相等即可认为相等
var str="p"; var str2="p"; str1===str2? true;
下面的全是原始类型值(简称:原始值):
- 布尔类型:true,false
- 数字类型:1736,1.351
- 字符串类型: ‘abc’,”abc”
- 两个“无值(non-values)”:undefined,null原始值的特征:
- 值比较的时候,内容比较。
- 值的属性不可改变,不可新增或者移除属性
var str="p"; strl.m = "m" ==> undefined
Object所有非原始类型,最常见的几种对象创建方式
- 普通对象,通过对象字面量创建(Object) {firstName : "z3",lastName : "li4"}
- 数组对象,通过数组字面量创建(Array) Array类型判断["a","b","c"]
正则对象,通过正则表达式字面量创建(RegExp) /^a$/对象的特征
比较的是引用:比较标示符,每个引用有自己的标示符
var p = {},var m={}; p===m ==>false; var p = {},m; m=p; p===m ==>true- 属性可以随意更改var p = {}; p.abc="123" ; alert(p.abc) ==> "123;
NULL 和 Undefined JavaScript 里面有两个“无值(non-values)”: null 和 undefined
- undefined 的含义是 no-value(无值) 未初始化的变量是 undefined
var p ; p==> undefined;
读取不存在的属性
var p = {}; alert(p.abc) ==> undefined;
未传递的参数
function f(p){return x;} f() ==> undefined;
- null的意思是“没有对象(no object)”。它被用来表示对象的无值(参数,链上的对象等)。
null 和 undefined 都没有任何属性(包括toString())
通常情况下你应该把undefined和null看成是等价的,如果他们代表相同意义的无值的话。检查他们的一种方式是通过严格比较:
if (x === undefined || x === null) { ... }
另一种在实际中使用的方法是认为undefined 和 null 都是false:
if (!x) { ... }
警告:false,0,NaN 和 “” 都被当作false。
真值和假值(Truthy and falsy) 每当JavaScript希望一个布尔值时(例如:if语句的条件),可以使用任何值。它将被理解(转换)为true或false。下面的值被理解为false:
undefined, null布尔: false数字: -0, NaN字符串: ‘’所有其他值被认为true。被理解为false的值成为假值(falsy),被理解为true的值成为真值(truthy)。可以使用Boolean作为函数测试值被理解为什么。
Boolean(undefined) false > Boolean(0) false > Boolean(3) true
通过typeof 和 instanceof 将值分类有两个操作符可以用来将值分类:typeof 主要用来操作原始值,instanceof 主要用来造作对象。typeof 使用如下:
typeof value
他返回描述value "类型" 的一个字符串。例如:
typeof 'abc' ==> 'string'
下面列出了所有typeof的结果 操作数 结果undefined 'undefined' null 'object' Boolean value 'boolean' Number value 'number' String value 'string' Function 'function' All other value 'object'
有两个需要注意的地方
- 函数的类型是“function”而不是“object”。鉴于函数(类型为“function”)是对象(类型是对象)的子类型,这不是一个错误。
- null的类型是“object”。这是一个bug,但从没被修复,因为修复后会破坏现有的代码。
instanceof 使用如下:
value instanceof Constr
如果 value 是一个对象,并且value 是由构造函数Constr创建的。例如:
var b = new Bar(); //通过Bar 构造出来的对象 > b instanceof Bar true > {} instanceof Object true > [] instanceof Array true
- javascript函数
- Javascript函数
- Javascript函数
- javascript函数
- javascript函数
- javascript函数
- JavaScript函数
- JavaScript 函数
- JavaScript 函数
- JavaScript函数
- javascript函数
- javascript函数
- javascript函数
- JavaScript 函数
- javascript函数
- javascript 函数
- javascript函数
- javascript函数
- 【算法编程】小学数学题难倒博士
- ECMAScript
- 合并两个排序的链表
- HDU 1024
- UITableViewHeaderFooterView的循环引用
- javascript函数
- ubuntu下配置opencv利用脚本工具
- 关于《最简单的基于FFMPEG+SDL的音频播放器》记录
- (一)Python2.7.9安装(windows版和linux版)
- 变量函数声明提升
- 欢迎使用CSDN-markdown编辑器
- 数值分析第三次大作业
- JavaScript创建对象的区分
- n后问题c++