js 基础知识
2016-01-12 15:45
525 查看
js数据类型分为:基础类型和对象类型。
基础类型:Number、String、Boolean、Null、Undefined
对象类型:object
对象类型Object包括:Array、Function、Date...
如果字符串里面包含字符串,有两种解决方法:
1.双引号里面用单引号;
2.单引号里面用双引号。
javascript使用以下八种转义字符,它们都是以反斜杠(\)开始。当JavaScript解析器看到反斜杠的时候,就会把程序员所要表达的意思表现出来。
Null和Undefined类型都只有唯一的特殊值,即null和undefined。不过null是关键字而undefined不是。
JavaScript把两者定义为相等的,如下代码可以验证:
尽管这两个值相等,但是它们的含义不同。undefined表示更深层次的“空值”,它是变量的一种取值,表明变量没有初始化。null 则用于表示尚未存在的对象。如果函数或方法要返回的是对象,那么找不到该对象时,返回的通常是 null。所以:
你也可以认为undefined是表示系统级的、出乎意料的或类似错误的值的“空值”;而null表示程序级的、意料之中的值的“空值”。如果你想吧两者赋值给变量或者属性等,最好的选择是null
第二种方式是使用对象字面量表示法。如下创建了一个和上面一样的对象:
使用对象字面量创建对象需要注意:当属性名中含有空格、特殊字符或者是保留字的时候一定要加上引号,其他情况下可加可不加
访问对象的属性有两种方式:点或者中括号操作符。
其中,objectName 为对象名称,propertyName为属性名称。
其中,objectName 为对象名称,propertyName 为属性名称。
对象是属性的集合,我们经常会检测集合中成员的所属关系——判断某个属性是否属于某个对象。这个时候就用到了:hasOwnProperty 函数
var arr = new Array();
如果知道数组中的数据,可以把数据包含到构造函数中。比如:
var arr = new Array("cat","dog","mouse");
如果数组中的数据只有一个且是数值时,用引号引起来length是1,不用引号的话数值是几就表示length是都少。比如:
第二种方式:使用字面量表示法
var arr = [];
上面创建了一个空数组,如果你知道其中的数据,可以如下使用:
var arr = ["cat", "dog", "mouse"];
JavaScript中数组对象的map方法也是一种集合操作
结果是获得一个新的数组,将得到[2,4,6,8]
var funcName = fucntion(参数){ 代码 }
示例中把一个"匿名的函数"赋值给变量sum,由于var定义了一个声明语句,对变量sum 的解析是在代码运行之前,因此sum变量在代码运行时已经被定义过了。
但是由于赋值语句只在运行时执行,因此在相应代码执行之前,sum的值缺省为undefined
这个函数接收两个函数。第一个参数是一个函数,第二个参数是要传递给该函数的一个值
如下示例:
在JavaScript中有四种方式调用函数,如下:
1.方法调用模式;
2.函数调用模式;
3.构造器调用模式;
4.apply调用模式。
如下示例:
基础类型:Number、String、Boolean、Null、Undefined
对象类型:object
对象类型Object包括:Array、Function、Date...
如果字符串里面包含字符串,有两种解决方法:
1.双引号里面用单引号;
2.单引号里面用双引号。
javascript使用以下八种转义字符,它们都是以反斜杠(\)开始。当JavaScript解析器看到反斜杠的时候,就会把程序员所要表达的意思表现出来。
序号 | 转义字符 | 使用说明 |
1 | \b | 后退一格 |
2 | \f | 换页 |
3 | \n | 换行 |
4 | \r | 返回 |
5 | \t | 制表符 |
6 | \' | 单引号 |
7 | \" | 双引号 |
8 | \ | 反斜杠 |
JavaScript把两者定义为相等的,如下代码可以验证:
alert(null == undefined);//会弹出true。
尽管这两个值相等,但是它们的含义不同。undefined表示更深层次的“空值”,它是变量的一种取值,表明变量没有初始化。null 则用于表示尚未存在的对象。如果函数或方法要返回的是对象,那么找不到该对象时,返回的通常是 null。所以:
alert(null === undefined);//会弹出false
你也可以认为undefined是表示系统级的、出乎意料的或类似错误的值的“空值”;而null表示程序级的、意料之中的值的“空值”。如果你想吧两者赋值给变量或者属性等,最好的选择是null
创建对象的两种方式:
第一种是使用new操作符后跟object 构造函数,如下:var obj = new Object(); obj.name = "MangGuo"; obj.age = 25;
第二种方式是使用对象字面量表示法。如下创建了一个和上面一样的对象:
var obj = { name : "MangGuo", //name是属性名,"MangGuo"是值 age : 25 }
使用对象字面量创建对象需要注意:当属性名中含有空格、特殊字符或者是保留字的时候一定要加上引号,其他情况下可加可不加
访问对象的属性有两种方式:点或者中括号操作符。
1.使用点操作符
语法:objectName.propertyName其中,objectName 为对象名称,propertyName为属性名称。
2.使用中括号操作符
语法:objectName[propertyName]其中,objectName 为对象名称,propertyName 为属性名称。
对象是属性的集合,我们经常会检测集合中成员的所属关系——判断某个属性是否属于某个对象。这个时候就用到了:hasOwnProperty 函数
创建数组的两种方式:
第一种方式:使用Array构造函数var arr = new Array();
如果知道数组中的数据,可以把数据包含到构造函数中。比如:
var arr = new Array("cat","dog","mouse");
如果数组中的数据只有一个且是数值时,用引号引起来length是1,不用引号的话数值是几就表示length是都少。比如:
var arr = new Array("3"); //创建了一个包含字符串是3的数组,length为1。 var arr = new Array(3); //创建了一个length为3的数组
第二种方式:使用字面量表示法
var arr = [];
上面创建了一个空数组,如果你知道其中的数据,可以如下使用:
var arr = ["cat", "dog", "mouse"];
JavaScript中数组对象的map方法也是一种集合操作
var a=[1,2,3,4]; a.map(function(d){return d*2;}); console.log(a);
结果是获得一个新的数组,将得到[2,4,6,8]
函数表达式
语法:var funcName = fucntion(参数){ 代码 }
示例中把一个"匿名的函数"赋值给变量sum,由于var定义了一个声明语句,对变量sum 的解析是在代码运行之前,因此sum变量在代码运行时已经被定义过了。
但是由于赋值语句只在运行时执行,因此在相应代码执行之前,sum的值缺省为undefined
作为值的函数
JavaScript中的函数名本身就是变量,所以函数也可以作为值来使用。看如下示例:function funcName(someFunc, someParam){ return someFunc(someParam) }
这个函数接收两个函数。第一个参数是一个函数,第二个参数是要传递给该函数的一个值
如下示例:
function funcName(someFunc, someParam){ return someFunc(someParam) }function sum(num){
return num + 3;
}
var result = funcName(sum, 5);
alert(result); //=>8
在JavaScript中有四种方式调用函数,如下:
1.方法调用模式;
2.函数调用模式;
3.构造器调用模式;
4.apply调用模式。
方法调用模式
当一个函数被保存为对象的一个属性时,我们称它为一个方法。如果调用表达式包含一个提取属性的动作(即我们在讲解对象时说的 . 操作符),那么它就被当做一个方法来调用。如下示例:
var myObj = {//对象字面量 param1: 1, param2: 2, sum: function (){ //this关键字只带当前的对象 return this.result = this.param1 + this.param2; } } myObj.sum(); //=>3
相关文章推荐
- javascript作用域链与闭包
- js省市联动,多版本,总有你喜欢的
- js调用父框架函数与弹窗调用父页面函数的方法
- 简单实用ssm+json+ajax三级联动
- Javascript学习笔记01——JS简介
- Servlet和JSP工作原理
- jsp绝对路径问题
- JSON 反序列
- Xcode控制台输出json数据乱码转为中文
- 深入理解javascript的this关键字
- js的跨域问题
- JS 新增一行,删除一行
- js 格式化数字
- JS 将中国标准时间转化为指定格式时间
- JS的简单交互(web代理)
- JS实现图片延迟加载(lazyload改编)
- Chrome调试js出现Uncaught SyntaxError: Unexpected identifier
- JavaScript函数定义方式
- ajax 对 Json 格式的解析
- 几个JavaScript的浏览器差异处理问题