临近面试,因此打算回过头来巩固一下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"
//

查看一个对象的所有属性,可以使用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"

部分来自前端网

重温js基础部分的更多相关文章

  1. js 基础篇(点击事件轮播图的实现)

    轮播图在以后的应用中还是比较常见的,不需要多少行代码就能实现.但是在只掌握了js基础知识的情况下,怎么来用较少的而且逻辑又简单的方法来实现呢?下面来分析下几种不同的做法: 1.利用位移的方法来实现 首 ...

  2. js 基础

    js基础知识点总结 如何在一个网站或者一个页面,去书写你的js代码:1.js的分层(功能):jquery(tool) 组件(ui) 应用(app),mvc(backboneJs)2.js的规划():避 ...

  3. js基础练习二之简易日历

    今天学到了js基础教程3,昨天的课后练习还没来的及做,这个是类似简易日历的小案例,视频还没听完,今晚继续...... 先看效果图: 其实做过前面的Tab选项卡,这个就很好理解了,通过鼠标放在不同月份月 ...

  4. [JS复习] JS 基础知识

    项目结尾,空闲时间,又把<JS 基础知识> 这本书过了一遍,温故知新后,很多知其然不知其所以然的内容 豁然开朗. [1. 用于范围的标签] display  :inline or bloc ...

  5. JS基础(超级简单)

    1     JS基础(超级简单) 1.1 数据类型 1.1.1   基本类型: 1)        Number:特别注意:NaN的检测方法:Nan!=NaN;或者使用isNaN方法 2)       ...

  6. Node.js基础与实战

    Node.js基础与实战 Node.jsJS高级进阶 NODE原理与解析 REPL交互环境 模块与NPM Buffer缓存区 fs文件操作 Stream流 TCP&UDP 异步编程 HTTP& ...

  7. js基础到精通全面教程--JS教程

    适合阅读范围:对JavaScript一无所知-离精通只差一步之遥的人 基础知识:HTML JavaScript就这么回事1:基础知识 1 创建脚本块 1: <script language=”J ...

  8. JS基础知识总结

      js基础知识点总结 如何在一个网站或者一个页面,去书写你的js代码:1.js的分层(功能):jquery(tool) 组件(ui) 应用(app),mvc(backboneJs)2.js的规划() ...

  9. js基础篇——call/apply、arguments、undefined/null

    a.call和apply方法详解 call方法: 语法:call([thisObj[,arg1[, arg2[,   [,.argN]]]]]) 定义:调用一个对象的一个方法,以另一个对象替换当前对象 ...

随机推荐

  1. CodeIgniter使用中写的一些文章

    CI的captcha替代类库:  http://www.ifixedbug.com/posts/codeigniter-captcha-library 原生的captcha不是太好用,自己组装一个吧. ...

  2. Redis配置参数汇总

    ==配置文件全解=== ==基本配置daemonize no 是否以后台进程启动databases 16 创建database的数量(默认选中的是database 0) save 900 1 #刷新快 ...

  3. dubbo事件通知机制(1)

    此文已由作者岳猛授权网易云社区发布. 欢迎访问网易云社区,了解更多网易技术产品运营经验. dubbo事件通知机制:http://dubbo.io/books/dubbo-user-book/demos ...

  4. LOJ#6048. 「雅礼集训 2017 Day10」数列(线段树)

    题面 传送门 题解 我的做法似乎非常复杂啊-- 首先最长上升子序列长度就等于把它反过来再接到前面求一遍,比方说把\(2134\)变成\(43122134\),实际上变化之后的求一个最长上升子序列和方案 ...

  5. jmeter+ant+jenkins+mac 报告优化(三) 使用命令行执行jmeter方式生成多维度的图形化HTML报告

    1.在构建中填写如下命令: 2.start.sh文件的内容 cd /Applications/apache-jmeter-3.0/bin/ CURTIME=`date +%Y%m%d%H%M` ./j ...

  6. ElasticSearch学习笔记(三)logstash安装和logstash-input-jdbc插件

    ElasticSearch的索引可以手动添加索引的,就是类似下面这样添加的 PUT /movies/movie/1 { "title": "The Godfather&q ...

  7. Java 设计模式之单利模式

    一.首先介绍一下单例模式:     单例模式(Singleton),也叫单子模式,是一种常用的软件设计模式.在应用这个模式时,单例对象的类必须保证只有一个实例存在.许多时候整个系统只需要拥有一个的全局 ...

  8. JMeter 源码二次开发函数示例

    JMeter 源码二次开发函数示例 一.JMeter 5.0 版本 实际测试中,依靠jmeter自带的函数已经无法满足我们需求,这个时候就需要二次开发.本次导入的是jmeter 5.0的源码进行实际的 ...

  9. Centos7.4下安装Redis5.0

    一.下载Redis Redis下载地址:https://redis.io/download 二.安装依赖包 安装Redis之前需要安装c++命令 yum install gcc-c++ 三.上传并解压 ...

  10. 47.ActiveMQ集群

    (声明:本文非EamonSec原创) 使用ZooKeeper实现的Master-Slave实现方式,是对ActiveMQ进行高可用的一种有效的解决方案,高可用的原理:使用ZooKeeper(集群)注册 ...