charCodeAt()
charCodeAt() 方法可返回指定位置的字符的 Unicode 编码。这个返回值是 0 - 65535 之间的整数。
var str = "123abc张文强";
var n = str.length;
function byteLength(str) {
// for(var i = 0; i < str.length; i++) {
// if(str.charCodeAt(i) > 255) {
// n++;
// }
// }
// return n;
var count = 0;
for(var i = 0; i < str.length; i++) {
if(str.charCodeAt(i) > 255){
count += 2;
}
else{
count ++;
}
}
return count;
}
原型
prototype----- >原型(相当于父亲)
例如:
Person.prototype.height = 1400;
Person.prototype.lang = 4900;
function Person() {
this.color = color;
}
new person = Person();
new 的时候,创建 var this ={__ proto __:Person.protortype}
原型链
简单的原型链样例:
Grand.prototype.lastName = "Deng";
function Grand() {
}
var grand = new Grand();
Father.prototype = grand;
function Father() {
this.name = 'xuming';
}
var father = new Father();
Son.prototype = father;
function Son () {
this.hobbit = 'smoke';
}
var son = new Son();
yuanxianglianyangtti
//a.sayName()执行
//sayName里面的this指向谁,谁调用的这个方法,this就是指向谁
//所以这个提题的答案是 b;
Person.prototype = {
name : "a",
sayName : function () {
console.log(this.name);
}
}
function Person () {
this.name = "b";
}
var person = new Person();
Object.creat(原型)
例如:
obj = {
age : 20,
name : "zhang"
}
obj1 = Object.creat(obj);
再例如:
Person.prototype.name = "sunny";
function Person() {
//这里面写东西的话就不能模仿了
}
var person = Object.creat(Person.prototype);
大多数对象都会继承于Object.prototype;
当Object.creat (null)时,它就没有__proto__;
对象
var zhang {
name : "xiaoqiang",
sex : "male",
age : "19",
gf : "none",
wife : "",
getMarried : function() {
this.wife = this.gf;
},
divorce : function() {
delete this.wife;
this.wife = this.pre
}
}
包装类
原始值没有对象和方法,包装类会起作用,创建一个
new Object().sign = ‘xxx’;
new Object().sign;
//下面这段js代码,运行后x,y,z分别是多少:
var x = 1, y = z = 0;
function add(n) {
return n = n + 1;
}
y = add(x);
function add(n) {
return n = n + 3;
}
z = add(x);
//结果为 x = 1,y = z = 4;(预编译后后面的函数回把前面的顶替掉);
parseInt();
parseInt() 函数可解析一个字符串,并返回一个整数(十进制)。
有两个值前面是要解析的字符串,后面是禁制如果不写或者为0的话默认为10;
例如:
后面的值:
- 可选。表示要解析的数字的基数。该值介于 2 ~ 36 之间。
- 如果省略该参数或其值为 0,则数字将以 10 为基础来解析。如果它以 “0x” 或 “0X” 开头,将以 16 为基数。
- 如果该参数小于 2 或者大于 36,则 parseInt() 将返回 NaN。
arguments[];
function test(x, y, a){
a = 10;
console.log(arguments[2]);
}
test(1, 2 ,3);
function test(x, y, a){
arguments[2] = 10;
console.log(a);
}
test(1, 2, 3);
上面这两串代码的结果都一样都是 10 ;
argunment[]和行参里面的值是一一对应的关系(你动我就动,我动你也动);
字符串有一个方法charCodeAt();
构 造 函 数
函数名第一个字母大写
加 new
函数体的最前面隐式的加上 this={ };
最后加上return this;
function Car() {
this.owner = owner;
this.carName = "BMW";
this.height = 1400;
this.lang = 4900;
this.color = color;
}
var car = new Car('zhang','red');
经典例题
var obj = {name : "a"};
var obj1 = obj;
obj = {name : "b"};
//问现在console.log(obj1);输出是什么?
//结果是 a ;