JS核心

1.实例化对象

objectName = new objectType (param1 [,param2] ...[,paramN])

参数  objectName 新对象实例的名称。

objectType  对象类型。它必须是一个定义对象类型的函数。

param1...paramN  对象的属性值。这些属性是objectType 函数的参数。

示例 1:对象类型和对象实例

function car(make, model, year) {

this.make = make

this.model = model

this.year = year

}

实例化对象:mycar =new car("Eagle", "Talon TSi", 1993)

示例 2: 对象属性就是另外一个对象。

function person(name, age, sex) {

this.name = name

this.age = age

this.sex = sex

}

rand = new person("Rand McNally", 33, "M")

ken= new person("Ken Jones", 39, "M")

function car(make, model, year, owner) {

this.make = make;

this.model = model;

this.year = year;

this.owner = owner;

}

car1= new car("Eagle", "Talon TSi", 1993, rand);

car2= new car("Nissan", "300ZX", 1992, ken)

car2.owner.name      //引用

2.this关键字用于引用当前对象,通常情况下,方法中的 this 指调用它的对象。

3.语句

1)for..in 对一个对象的所有属性重复赋给一个特定变量,JavaScript 会对每个不同的属性都执行特定的语句。

var array=[1,2,3,4,5];//定义一个数组,实现数组元素的遍历。

用For...in实现

for(var i in array){

alert(array[i]);//数组的元素

用for循环实现

for(var i=0;i<array.length;i++){

alert(array[i]);//数组的元素

}

  2)delete语句:删除对象的属性,或者删除数组中的指定元素。

delete objectName.property

delete objectName[index]

delete property

注意:如果 delete 操作符成功的话,它就会将元素的属性设定为未定义;操作符总是返回未定义。

你只能使用 delete 操作符删除对象属性或数组元素。你不能使用该操作符删除对象或变量。因此,你就只能在 with 语句中使用第三种格式,以便删除对象的属性。

 3)export //允许标明的脚本向其它标明或未标明的脚本提供属性、函数和对象。

export name1, name2, ..., nameN

export *

 4)import //允许脚本从标识的脚本中导入已经导出的属性、函数和对象。

import objectName.name1, objectName.name2, ..., objectName.nameN

import objectName.*

5)with //为一组语句创建缺省的对象。在这一组语句中,任何不指定对象的属性引用都将被认为是缺省对象的。

with (object){

statements

}

例子:var a, x,y

var r=10

with (Math) {

a = PI * r * r

x = r * cos(PI)

y = r * sin(PI/2)

}

4.Array对象:

构造函数:newArray( )

new Array(size)

new Array(element0, element1, ..., elementn)

方法:

1)array.concat(value, ...)  // 连接数组,要增加到array中的值,可以是任意多个。

注:方法concat()将创建并返回一个新数组,这个数组是将所有参数都添加到array中生成的。它并不修改array。如果要进行concat()操作的参数是一个数组,那么添加的是数组中的元素,而不是数组。

例子:var a =[1,2,3];

a.concat(4, [5,[6,7]])  //返回[1,2,3,4,5,[6,7]]

2)array.join( )     //将数组元素连接起来以构建一个字符串,—个字符串,通过把array的每个元素转换成字符串,然后把这些字符串连接起来,在两个元素之间插入separator字符串而生成。

array.join(separator)

例子:a = newArray(1, 2, 3, "testing");

s = a.join("+");  // s 是字符串"1+2+3+testing"

3)Array.length //数组的长度

注:数组的length属性总是比数组中定义的最后一个元素的下标大一。对于那些具有连续元素,而且以元素0开始的常规数组来说,属性length声明了数组中的元素个数。

设置属性length的值可以改变数组的大小。如果设置的值比它的当前值小,数组将被截断,其尾部的元素将丢失。如果设置的值比它的当前值大,数组将增大,新元素被添加到数组尾部,它们的值为undefined。

4)array.pop( ) //删除并返回数组的最后一个元素,方法pop()将删除array的最后一个元素,把数组长度减1,并且返回它删除的元素的值。如果数组已经为空,则pop()不改变数组,返回undefined。

  5)array.push(value, ...)  //给数组添加元素,要添加到array尾部的值,可以是一个或多个,返回指定的值添加到数组后的新长度,方法push()将把它的参数顺次添加到array的尾部。它直接修改array,而不是创建——个新的数组。方法push()和方法pop()用数组提供先进后出栈的功能。参阅“Array.pop()”

  6)array.reverse( )   //Array对象的方法reverse()将颠倒数组中元素的顺序。它在原数组上实现这一操作,即重排指定的array的元素,但并不创建新数组。如果对array有多个引用,那么通过所有引用都可以看到数组元素的新顺序。

例子:a = newArray(1, 2, 3);    // a[0] == 1, a[2] ==3;

a.reverse(  );          // Now a[0] == 3, a[2] == 1;

  7)Array.shift( )   //将array的第—个元素移出数组,返回那个元素的值,并且将余下的所有元素前移一位,以填补数组头部的空缺。如果数组是空的,shift()将不进行任何操作,返回undefined。注意,该方法不创建新数组,而是直接修改原有的数组。

方法shift()和方法Array.pop()相似,只不过它在数组头部操作,而不是在尾部操作。该方法常常和unshift()一起使用。

例子:var a =[1, [2,3], 4]

a.shift(  );  // 返回 1; a = [[2,3], 4]

a.shift(  );  // 返回 [2,3]; a = [4]

8)array.slice(start, end) //回数组的一部分,或者说是一个子数组。返回的数组包含从start 开始到end之间的所有元素,但是不包括end所指的元素。如果没有指定end,返回的数组包含从start开始到原数组结尾的所有元素,该方法并不修改数组。如果想删除数组中的一段元素,应该使用方法Array.splice。

例子:var a =[1,2,3,4,5];

a.slice(0,3);    // 返回 [1,2,3]

 9)array.sort( )           //将按字母顺序(更为精确地说,是按照字符编码的顺序)对数组中的元素进行排序。

array.sort(orderfunc)   //按数字排序

 10)array.splice(start, deleteCount, value, ...)   //插入、删除或替换数组的元素;start:开始插入和(或)删除的数组元素的下标。deleteCount:从start开始,包括start所指的元素在内要删除的元素个数。value:要插人数组的零个或多个值,从start所指的下标处开始插入。如果从array中删除了元素,返回的是含有被删除的元素的数组。

例子:var a =[1,2,3,4,5,6,7,8]

a.splice(4);        // 返回 [5,6,7,8];a is [1,2,3,4]

 11)array.toLocaleString( )  //数组array的局部字符串表示;数组的方法toString()将返回数组的局部字符串表示。它首先调用每个数组元素的toLocaleString()方法,然后用地区特定的分隔符把生成的字符串连接起来,形成一个字符串。

TypeError                //调用该方法时,如果对象不是Array,则抛出异常。

 12)array.unshift(value, ...)  //要插入数组头部的一个或多个值,返回值:数组的新长度,unshift()不创建新数组,而是直接修改原有的数组。

例子:var a =[];             // a:[]

a.unshift(1);           //a:[1]          返回 1

a.unshift(22);          // a:[22,1]       返回 2

5.Boolean对象:

newBoolean(value) //构造函数

Boolean(value) //转换函数

注:当作为一个构造函数(带有运算符new)调用时,Boolean()将把它的参数转换成一个布尔值,并且返回一个包含该值的Boolean对象。如果作为一个函数(不带有运算符new)调用的,Boolean()只将它的参数转换成一个原始的布尔值,并且返回这个值。

0、NaN、null、空字符串""和undefined都将转换成false。其他的原始值,除了false(但包括字符串"false"),以及其他的对象和数组都会被转换成true。

toString( )   //根据Boolean对象代表的布尔值返回"true"或"false"。

valueOf( )    //返回Boolean对象中存放的原始布尔值。

6.Error对象:

newError(  )

newError(message)   //message 提供异常的详细信息的错误消息,可选;name:声明异常类型的字符串。对于Error类的实例和所有子类来说,该属性声明了用于创建实例的构造函数名。

属性:error.message可以读取的错误消息;error.name 错误的类型;

方法:Object.toString();

例子:functionfactorial(x) {

if (x < 0) throw new Error("factorial: x must be >= 0");

if (x <= 1) return 1; else return x * factorial(x-1);

}

error.toString( )  //把Error对象转换成字符串

new SyntaxError( )

new SyntaxError(message)  //抛出该错误用来通知语法错误

new RangeError(  )

new RangeError(message)   //当一个值超出有效范围时发生的错误。主要有几种情况,一是数组长度为负数,二是Number对象的方法参数超出范围,以及函数堆栈超过最大值。

new ReferenceError( )

new ReferenceError(message) //引用一个不存在的变量时发生的错误,获将将一个值分配给无法分配的对象,比如对函数的运行结果或者this赋值。

new TypeError(  )

new TypeError(message)      //变量或参数不是预期类型时发生的错误。比如,对字符串、布尔值、数值等原始类型的值使用new命令,就会抛出这种错误,因为new命令的参数应该是一个构造函数。

new URIError(  )

new URIError(message)       //URI相关函数的参数不正确时抛出的错误,主要涉及encodeURI()、decodeURI()、encodeURIComponent()、decodeURIComponent()、escape()和unescape()这六个函数。

7.Function对象:

用法:1)充当Function对象的构造函数使用,用于结合new关键字构造一个新的Function对象。

new Function( [ argName1 [, argName1 [, argNameN... [, funcBody ]]]])  eg:var sum = newFunction("x", "y", "return x + y;");

2)当作普通函数使用,其行为与用法一(使用new关键字)完全一致,相当于用法一省略了new关键字。

Function( [ argName1 [, argName1 [, argNameN... [, funcBody ]]]] )

eg:var foo = Function('var name="CodePlayer";document.writeln(name);');

arguments:属性是正在执行的函数的内置属性,返回该函数的arguments对象。arguments对象包含了调用该函数时所传入的实际参数信息(参数个数、参数值等)。

属性:length属性,functionObject.length;返回实际传入的参数个数。

caller属性,functionObject.caller;返回当前函数的引用(匿名函数可以使用该属性实现递归调用),也就是调用当前函数的函数。

0...n属性,以顺序索引访问传入的具体参数。例如,使用arguments[0]可以访问传入的第1个参数,arguments[1]可以访问传入的第2个参数。

apply() 方法:functionObject.apply([ thisObj [, argsArray ]] );apply()函数用于调用当前函数functionObject,并可同时使用指定对象thisObj作为本次函数执行时函数内部的this指针引用。

注:如果提供了argsArray参数,则该参数必须是一个数组,或者arguments对象。数组中的每个元素(arguments对象中的每个属性0...n)将按照顺序作为参数传入该函数。

如果提供了argsArray参数,则必须提供thisObj参数。

eg:var obj ={name: "李四", age: 20};

// 更改内部的this指针引用对象为obj

test.apply(obj); // [object Object] 李四 20

function foo(a, b){

document.writeln(this.name);

document.writeln(a);

document.writeln(b);

}

// 改变this引用为obj,同时传递两个参数

foo.apply(obj, [12, true]); // 李四 12 true

call()方法:functionObject.call([ thisObj [, arg1 [, arg2 [, args...]]]] )

注:该函数与Function对象的apply()函数作用相同,只不过call()函数是将Function对象的参数一个个分别传入,apply()函数是将Function对象的参数以一个数组或arguments对象的形式整体传入。

eg:var obj = {name: "李四", age: 20};

// 更改内部的this指针引用对象为obj

test.call(obj); // [object Object] 李四 20

function foo(a, b){

document.writeln(this.name);

document.writeln(a);

document.writeln(b);

}

// 改变this引用为obj,同时传递两个参数

foo.call(obj, 12, true); // 李四 12 true

toString()方法:object.toString()函数用于将当前对象以字符串的形式返回。

var date = new Date(2013, 7, 18, 23, 11, 59, 230);

document.writeln( date.toString() ); // Sun Aug 18 2013 23:11:59 GMT+0800(中国标准时间)

8.Math对象:

方法:Math.PI

Math.abs( number )   //number的绝对值;

Math.ceil( number )  //Math.ceil()函数用于返回大于或等于指定数字的最小整数,一般称为向上取整。

Math.floor()         //函数用于返回小于或等于指定数字的最大整数,一般称为向下取整。

Math.floor( number ) //函数用于返回小于或等于指定数字的最大整数,一般称为向下取整。

Math.random( )       //函数用于返回介于 0 到 1 之间的伪随机数(不包括 1)。

9.Number对象:

用法:1)充当Number对象的构造函数使用,用于结合new关键字构造一个表示数值的Number对象。

new Number( [ value ] )     eg:varnumObj4 = new Number( "CodePlayer" ); // NaN

2)当作普通函数使用,将其它数据类型转换为Number数据类型的原始数值。简而言之,这是一个类型转换函数。

Number( [ value ] )

属性:Number.MAX_VALUE//属性返回JavaScript中可以表示的最大数值。其值约等于1.7976931348623157E+308。

Number.MIN_VALUE //属性返回JavaScript中可以表示的最接近于0(但不等于0)的数。其值为5E-324。

Number.NaN   //Number.NaN的值为Number类型,其值一般为NaN。属性是一个特殊值,用于表示算术表达式返回了非数字值,该属性为Number对象的一个只读属性(准确地说,是一个常量)。

Number.NEGATIVE_INFINITY  //负的无穷大  {输出显示为-Infinity)

Number.POSITIVE_INFINITY  //正的无穷大  (输出显示为Infinity)

方法:numberObject.toExponential([ fractionalDigits ] )//函数返回一个字符串,该字符串以指数计数法表示当前数值。

注:如果没有提供fractionDigits参数,则toExponential()方法将返回足够多位数字,以便唯一指定该数字。

如果提供了参数,则参数fractionDigits必须介于 [0, 20] 之间,否则将报错。

如果数字本身的小数位数大于参数fractionDigits,则根据第fractionDigits + 1位小数上的值进行四舍五入。

eg:var num = 423.536;

document.writeln( num.toExponential() ); // 4.23536e+2

numberObject.toFixed( [ fractionalDigits ] )

注:如果没有提供fractionDigits参数或其参数值为undefined,则fractionDigits参数将默认为0。

如果提供了参数,则参数fractionDigits必须介于 [0, 20] 之间,否则将报错。

如果数字本身的小数位数多于参数fractionDigits,则根据第fractionDigits + 1位小数上的值进行四舍五入。

Number.toString( [ radix ])   //函数返回表示该数字的指定进制形式的字符串。

注:参数radix支持 [2, 36] 之间的整数。例如:参数值为2,则表示二进制;为8,则表示八进制;为16,则表示十六进制。

object.valueOf( )   //函数用于返回指定对象的原始值。

10.Date对象:

用法:1)Date( ) //当作普通函数使用,直接以字符串形式返回当前日期和时间。

2)充当Date对象的构造函数使用,用于结合new关键字构造一个表示日期或时间的Date对象。Date()构造函数又有如下两种形式。

// 形式一

new Date( [ milliseconds ] )

// 形式二

new Date( year, month, day [, hours [, minutes [, seconds [, ms ]]]] )

方法:date.getDate()  //getDate()函数用于使用当地时间返回当前Date对象中一个月第几天的值。也就是"年份-月份-日期"中"日期"的数值。例如:2013年7月15日,就返回15。

eg:// 定义一个"1999-05-30 12:11:59 230"的Date对象

var date2 = new Date(1999, 4,30, 12, 11, 59, 230);

document.writeln( date2.getDate() ); // 30

date.getDay( )   //函数用于使用当地时间返回当前Date对象中该天的星期值。

eg.// 定义一个"2013-07-21"的Date对象

var date = new Date(2013, 6, 21);

// 星期天

document.writeln( date.getDay() ); // 0

date.getFullYear( )   // 函数用于使用当地时间返回当前Date对象中的年份值。也就是"年月日"中"年"的数值。例如:2013年7月15日,就返回2013;公元前123年5月12日,就返回-123。

date.getTime( )       //函数用于使用当地时间返回当前Date对象中的时间值。该时间值表示从1970年1月1日午夜开始,到当前Date对象时,所经过的毫秒数,以格林威治时间为准。

eg.// 定义一个"1970-01-01 08:00:00 000"的Date对象

// 由于当前环境为北京GMT+8时区,所以与GMT有8个小时的差值

var date2 = new Date(1970, 0, 1, 8);

document.writeln( date2.getTime() ); // 0

date.toLocaleDateString( )   //函数用于以字符串的形式返回当前Date对象。该字符串适用于宿主环境的当前区域设置(也就是说,已经过"本地化"处理,易于当地用户阅读),并且只包含"年月日"部分的短日期信息。

eg.//定义一个"2013-07-21"的Date对象

var date = new Date(2013, 6, 21, 13, 12, 59, 231);

document.writeln( date.toLocaleDateString() );

date.toLocaleString( ) //函数的返回值为String类型,返回一个表示该Date对象的"本地化"字符串,且包含年月日时分秒部分的日期信息。

date.toTimeString( )   //以字符串的形式返回当前Date对象。该字符串只包含"时分秒"部分的时间信息。

11.RegExp对象:

正则表达式(英语:RegularExpression,在代码中常简写为regex、regexp或RE)使用单个字符串来描述、匹配一系列符合某个句法规则的字符串搜索模式。

搜索模式可用于文本搜索和文本替换。

语法:1)直接量语法:/pattern/attributes  ;/正则表达式主体/修饰符(可选)

2)new RegExp(pattern, attributes);attributes:一个可选的字符串,包含属性“g”、“i”和“m”,分别用于指定全局匹配、区分大小写的匹配和多行匹配;

方法:search() 方法:

1)search() 方法使用正则表达式

var str = "Visit Runoob!";

var n = str.search(/Runoob/i);   //输出6

2)search() 方法使用字符串

var str = "Visit Runoob!";

var n = str.search("Runoob");

replace() 方法:

1)replace() 方法使用正则表达式

var str = document.getElementById("demo").innerHTML;

var txt = str.replace(/microsoft/i,"Runoob");

2)replace() 方法使用字符串

RegExp对象方法:

1)test() 方法是一个正则表达式方法,test() 方法用于检测一个字符串是否匹配某个模式,如果字符串中含有匹配的文本,则返回 true,否则返回 false。

eg:var patt = /e/;

patt.test("The best thingsin life are free!");

2)exec()exec() 方法用于检索字符串中的正则表达式的匹配。该函数返回一个数组,其中存放匹配的结果。如果未找到匹配,则返回值为 null。

/e/.exec("The best things in life are free!");

12.String对象:

1)字符串查找:indexOf() 来定位字符串中某一个指定的字符首次出现的位置,没找到返回-1;

var str="Hello world, welcome to the universe.";

var n=str.indexOf("welcome");

2)内容匹配:match()函数用来查找字符串中特定的字符,并且如果找到的话,则返回这个字符。

var str="Hello world!";

document.write(str.match("world") + "<br>");

3)替换内容:replace() 方法在字符串中用某些字符替换另一些字符。

str="Please visit Microsoft!"

var n=str.replace("Microsoft","w3cschool");

4)字符串大小写转换:字符串大小写转换使用函数 toUpperCase() / toLowerCase():

var txt="Hello World!";      // String

var txt1=txt.toUpperCase();   //txt1 文本会转换为大写

var txt2=txt.toLowerCase();   //txt2 文本会转换为小写

5)字符串转为数组:

txt="a,b,c,d,e"   //String

txt.split(",");   // 使用逗号分隔

txt.split(" ");   // 使用空格分隔

txt.split("|");   // 使用竖线分隔

6)连接字符串:Array.concat( )

var a = [1,2,3];

a.concat(4, 5)          //返回[1,2,3,4,5]

7)String.substr( ):返回一个子字符串;string.substr(start,length)

var s = "abcdefg";

s.substr(2,2);   // 返回"cd"

JS核心的更多相关文章

  1. Node.js核心入门

    前言: 因为以前学习Node.js并没有真正意义上的去学习它,而是粗略的学习了npm的常用命令和Node.js一些模块化的语法,因此昨天花了一天的时间看了<Node.js开发指南>一书.通 ...

  2. JS核心系列:浅谈原型对象和原型链

    在Javascript中,万物皆对象,但对象也有区别,大致可以分为两类,即:普通对象(Object)和函数对象(Function). 一般而言,通过new Function产生的对象是函数对象,其他对 ...

  3. JS核心系列:浅谈 call apply 与 bind

    在JavaScript 中,call.apply 和 bind 是 Function 对象自带的三个方法,这三个方法的主要作用是改变函数中的 this 指向,从而可以达到`接花移木`的效果.本文将对这 ...

  4. node.js核心模块

    全局对象 global 是全局变量的宿主 全局变量 在最外层定义的 全局对象的属性 隐士定义的变量(未定义直接赋值的变量) 当定义一个全局变量时 这个变量同时也会成为全局对象的属性 反之亦然 注意: ...

  5. JS核心笔记

    一.说明 JS权威指南文字用红色标出: JS高级程序设计用橙色标出; 自己加上的文字用粉红色标出: 其(一)-(九)为JS权指南,(十)为JS高级程序设计 二.记法结构 2.1字符集 Javascri ...

  6. vue.js核心最基本的功能

    Vue.js 的核心是一个允许采用简洁的模板语法来声明式地将数据渲染进 DOM 的系统: , text: , text: , text: '随便其它什么人吃的东西' } ] }}) 蔬菜 奶酪 随便其 ...

  7. Ext.Js核心函数( 三)

    ExtJs 核心函数简介 1.ExtJs提供的常用函数2.get.fly.getCmp.getDom.getBody.getDoc3.query函数和select函数4.encode函数和decode ...

  8. node.js 核心http模块,起一个服务器,返回一个页面

    let http=require("http"); //引入核心http模块 let fs=require("fs"); let mime={ '.js':'a ...

  9. JS核心之DOM操作 下

    目录: 1.节点类型之Document类型 2.节点类型之Element类型 3.节点类型之Text类型 4.综合小示例 -- 动态添加外部样式文件 5.查找元素的扩展方法 接上篇,我们先来看常用的三 ...

随机推荐

  1. 采用个hook技术对writefile函数进行拦截(2)

    http://www.cnblogs.com/zhxfl/archive/2011/11/03/2233846.html 这个是笔者之前写过的WriteFile HOOK代码 必须补充对这几个函数的H ...

  2. poj1151 Atlantis——扫描线+线段树

    题目:http://poj.org/problem?id=1151 经典的扫描线问题: 可以用线段树的每个点代表横向被矩形上下边分割开的每一格,这样将一个矩形的出现或消失化为线段树上的单点修改: 每个 ...

  3. dubbo项目中包的依赖说明

    依赖 (+) (#) 必需依赖 JDK1.5+ 理论上Dubbo可以只依赖JDK,不依赖于任何三方库运行,只需配置使用JDK相关实现策略. 缺省依赖 通过mvn dependency:tree > ...

  4. 联想Y450在Ubuntu下调节屏幕亮度

    今天觉得ubuntu下编程时屏幕太亮,上网查了下怎样设置屏幕亮度,按住Fn 的同时调节,结果木有反应啊,杯催.... 继续搜索,最终解决了, happy... 1. 设置屏幕亮度初始值,解决reboo ...

  5. Sandy and Nuts

    题意: 现在有一个$n$个点的树形图被拆开,现在你知道其中$m$条边,已经$q$对点的$LCA$,试求原先的树有多少种可能. 解法: 考虑$dp$,$f(x,S)$表示$x$的子树内的点集为$S$(不 ...

  6. 性能测试之Jmeter学习(一)

    一.Jmeter的安装: 1.安装配置要求: Java版本: Jmeter要求完全兼容的Java6或更高版本(建议安装java 8或以上版本): 操作系统:是一个100%的Java程序,它在任何支持完 ...

  7. 安装openstack出现的问题及解决

    感谢http://www.cnblogs.com/nmap/p/6417163.html,参考这篇文章,我在虚拟机上部署成功了,后来因为虚拟机实在带不动,所以改装到物理机上,在实验室找到两台物理机,分 ...

  8. visual editor ve1.5下载

    eclipse官网的ve下载不了,下面这个能下 http://sourceforge.net/projects/visualeditor/files/latest/download

  9. jquery操作select(option)的取值,设置和选中

    比如 <select class="selector"> <option value ="volvo">Volvo</option ...

  10. 51nod - 1420 - 数袋鼠好有趣 - 贪心 - 二分

    https://www.51nod.com/Challenge/Problem.html#!#problemId=1420 一开始乱搞了一发,每个袋鼠二分找最小的能放它的,然后二分的范围从下一个开始保 ...