重温js基础部分

临近面试,因此打算回过头来巩固一下js的一些基础部分,同时也是为了记录自己的一些比较薄弱的点。

1、typeof操作符

typeof返回一个基本数据类型,包括number,string,boolean,object,function,undefined。这是一个操作符,因此可以直接写成typeof data,而不必使用括号。该操作符的操作数可以是一个变量,也可以是一个数值字面量。

typeof 10;//number

var str = 'ko';
typeof str;//string

值得一提的是,typeof null会返回'object',因为null在js中就是一个空对象指针。另外,typeof一个正则表达式也会返回'object';

 

2、字符串

js中的字符串是不可变的,一旦创建,要改变该变量保存的字符串的话,就要先销毁原来的字符串,然后再用另一个包含新值的字符串填充该变量:

var lang = 'java;
lang = lang + 'script';

以上代码第二行重新定义lang是这样实现的:首先创建一个能容纳10个字符的新字符串,然后在这个字符串中填充'java'和'script',最后一步是销毁原来的字符串'java'和字符串'script',因为这两个字符串已经没用了。

字符串用单引号或双引号都可以,但前后要对应,而且要在单引号内部使用单引号的话,就要先进行转义:

var str = 'a\'';
console.log(str); //a'

双引号同类。

字符串默认只能先在一行中,如果要拆分成多行,则必须用反斜杠\结束:

var str = 'hello\
world\
!\''

字符串可以用作字符数组,因此可以用数组的形式访问:

var str = 'hello';
str[0] //h

但无法像数组一样通过下标改变字符的值:

var str = 'hello';
str[0] = a;
str[0] //h

以下是常用的转义字符:

\0 null(\u0000)
\b 后退键(\u0008)
\f 换页符(\u000C)
\n 换行符(\u000A)
\r 回车键(\u000D)
\t 制表符(\u0009)
\v 垂直制表符(\u000B)
\' 单引号(\u0027)
\" 双引号(\u0022)
\ 反斜杠(\u005C)

3、变量:

如果使用var重复声明一个已经存在的变量,而且不给它初始化,那么这是无效的:

var str = 'hello';
var str;
str //hello

 

对象:

在js中,创建对象有三种方法:

对象直接量: var o={};
关键字new: var o=new Object();
Object.create()函数: var o=Object.create(null)

可以用for...in来遍历一个对象的属性:

var o = {
  name : 'a',
  age : 12
}
for(var i in o){
  console.log(o[i]
}
// "a"
// 12

查看一个对象的所有属性,可以使用Object.keys()方法:

var obj = {
name:'a',
age:'24'
};

console.log(Object.keys(obj)); //["name", "age"]

可以通过delete删除对象的属性:

var o={
  name : 'a'
}
delete o.name  //true
o.name  //undefined

delete运算符只能删除自有属性,不能删除继承属性。

删除一个不存在的属性,delete不报错,而且返回true。

只有一种情况,delete命令会返回false,那就是该属性存在,且不得删除。

 

json:

对象序列化是指将对象的状态转换为字符串,也可将字符串还原为对象。

可使用JSON.stringify()将对象序列化,JSON.parse()还原对象。

JSON.stringify()可传入三个参数,第一个参数是必需的,如下传入第二个参数以大写的形式输出:

var students = new Array() ; 
students[0] = "onepiece"; 
students[1] = "naruto"; 
students[2] = "bleach"; 

var json = JSON.stringify(students,switchUpper);


function switchUpper(key,val){
    return val.toString().toUpperCase();
}

console.log(json);//"ONEPIECE,NARUTO,BLEACH"

 

部分来自前端网

posted @ 2016-11-26 14:45  _Jo  阅读(189)  评论(0)    收藏  举报