javaScript 工作必知(三) String .的方法从何而来?

String

我们知道javascript 包括:number,string,boolean,null,undefined 基本类型和Object 类型。

在我的认知中,方法属性应该是对象才可以具有的。

 var  str="hello,world";
 var  s=str.subString(1,4);//ell
 alert(typeof(str)+":"+typeof(s));//string:string

             从上面的返回类型来看,str是string 类型的。

       再看下面的 如何使用全局对象声明一个字符串。

var c=new String(str);
alert(typeof(c));//Objectalert(c.toString());//hello,world

            那我能不能认为: 当我处理字符串的时候,

javascript编译器先把str字符串,使用new String(str);成了对象。然后在调用其处理办法,然后使用toString()方法返回个字符串呢。

临时对象的创建和销毁

从上面的实例我知道javascript在处理字符串、number,boolean 时就会创建临时对象,然后销毁。

   var a = "hello,world";
        var c = new String(a); //创建了string 对象。
        c.len = 4;
        alert(typeof (c));//object;
        alert(c.len);//4

///////////////////////////////////////////////////////////////////////
         a.len=5;
         alert(a.len);//undefined

  a.len 编译器没有报错,是因为创建的临时对象操作完后,又销毁了。

==和===

a==c ;//true;
a===c;//false; 字符串和object是不等的。

  

时间: 2024-08-07 13:44:50

javaScript 工作必知(三) String .的方法从何而来?的相关文章

javascript 工作必知(四) 类型转换

string和number boolean javascript 类型会根据赋值的进行转成相应的类型. var str = ""; alert(typeof (str));//string str = 5; alert(typeof (str));//number var sum = str + 5; //+编程两个数字相加 alert(sum);//10       这一种比较明显,一眼就可以计算出其值.但是请看下面这种转换 var sum = "7" + &qu

javaScript 工作必知(十) call apply bind

call  每个func 都会继承call apply等方法. function print(mesage) { console.log(mesage); return mesage; } print.call(this, "cnblogs");//cnblogs call(thisAgr,agr1,agr2...) ,call方法第一个传递一个context上下文.后面是参数的个数. apply apply(thisAgr,[agr1,agr2]),apply方法和call的用法一样

JavaScript 工作必知(九)function 实参和形参

大纲 Function Caller 返回函数调用者 Callee 调用自身 function 函数格式 function getPrototyNames(o,/*optional*/ a) { a = a || []; for(var p in o) { a.push(p); } return a; } caller func.caller 返回函数调用者 function callfunc() { if(callfunc.caller) { alert(callfunc.caller.toS

javaScript 工作必知(八) 属性的特性 值、写、枚举、可配置

属性的特性 每个对象都拥有属性,属性具有哪些特性呢? 1.属性具有值.  2.属性是否是可写的.            3.是否是可枚举的.            4.是否是可配置的.   "use strict";//使用严格模式 var descriptor = Object.getOwnPropertyDescriptor({ x: 1 }, "x");//获取匿名对象的值 alert("value:" + descriptor.value

javaScript 工作必知(五) eval 的使用

eval eval(parse) parse :里面跟参数字符串,我们知道执行javascript 会编译执行,    改变全局变量的值: var x = 2; //定义的全局变量 alert(x);//2 var g = eval("x=3"); //eval 会根据当前上下文解析x alert(x);//3    在全局作用域引用eval,改变全局作用域的值,不改变局部作用域的值 var g = eval; //全局引用eval var x = "global"

javaScript 工作必知(六) delete in instanceof

in in 判断  左边 的字符串或者能转换成字符串的是否属于 右边 的属性. var data = { x: 1, y: 4 };//定义了直接对象 alert("x" in data);//true ,x 是data 的一个属性 alert(1 in data);//false ,1 是data的属性值. var arr = [4, 5, 7];//定义了直接数组对象 alert(0 in arr);//true ,arr 数组的index包括0,1,2,0 是他的一个[0]属性.

javaScript 工作必知(二) null 和undefined

null null 表示个“空” , 使用typeof (null) ;//Object ; 说明他是一个特殊的对象. null 类型只自己唯一个成员.他是不包含属性和方法的. undefined undefined 同样也是表示"空", 使用typeof (undefined) ;//undefined ;说明他是undefined类型的. undefined 类型只包含自己一个成员,他不包含属性和方法的. summary null 和 undefined 在莫种意义上可以一样 ,比

javaScript 工作必知(七) 对象继承

对象继承inherit var o = { r: 1 }; var c = function f() { }; c.prototype = o; c.r = 3; alert(o.r);//被继承的属性值未发生改变. alert(c.r);//c中r覆盖了o中的属性.     如何调用o中的r属性呢. var o = { r: 1 }; var c = function f() { }; c.prototype = o; alert(o.r);//1 被继承的属性值未发生改变. alert(c.

高效javascript编程必知的5个数组方法

本文和大家分享的主要是javascript中关于数组最重要的5个方法,一起来看看吧,希望对大家学习javascript有所帮助. Array.forEach() .forEach() 方法能够方便的让你 遍历数组里的每个元素 ,你可以在回调函数里对每个元素进行操作..forEach() 方法没有返回值,你不需要在回调函数里写 return ,这是无意义的. var animals = ['dog', 'cat', 'mouse']; animals.forEach(function(item){