JavaScript基础篇(一)— — 快速入门
来源:互联网 发布:解析域名打不开 编辑:程序博客网 时间:2024/04/30 21:54
https://developer.mozilla.org/zh-CN/docs/Web/JavaScript/Guide
慕课网《深入浅出JS》:http://www.imooc.com/learn/277
JavaScript 标准参考教程(阮一峰)http://javascript.ruanyifeng.com/
廖雪锋:http://www.liaoxuefeng.com/wiki/001434446689867b27157e896e74d51a89c25cc8b43bdb3000
《Javascript权威指南》
快速入门
一、基本语法
弱类型语言特性
var num = 2;num = "this is string";//可以重复赋不同类型的值32 + 32 //64"32" + 32 //3232"32" - 32 //0
二、数据类型
1、数据类型有六种,ES6增加了Symbol第七种
数值(number):整数和小数(比如1和3.14)
字符串(string):字符组成的文本(比如”Hello World”)
布尔值(boolean):true(真)和false(假)两个特定值
undefined:表示“未定义”或不存在,即此处目前没有任何值
null:表示空缺,即此处应该有一个值,但目前为空
对象(object):各种值组成的集合(Function、Array、Date…)
其中前五种数值、字符串、布尔值、undefined、null为原始类型
2、判断数据类型三种方式
a、typeof运算符
typeof window // "object"typeof {} // "object"typeof [] // "object",在JavaScript内部,数组本质上只是一种特殊的对象。typeof null // "object",js历史原因造成,本质上null是一个类似于undefined的特殊值。
b、instanceof运算符
基于原型链,适合自定义对象,也可以检测原生对象obj instance of Object
//用instanceof来区分对数组(array)和对象(object)var o = {};var a = [];o instanceof Array // falsea instanceof Array // true
c、Object.prototype.toString方法
Object.prototype.toString.apply([]); //"[object Array]"Object.prototype.toString.apply(function(){}); //"[object Function]"Object.prototype.toString.apply(null); //"[object Null]"//IE678中null返回"[object Object]"Object.prototype.toString.apply(undefined); //"[object Undefined]"
使用内置对象和基本类型,遇到null和undefined失效
//封装方法function getType(obj) { return Object.prototype.toString.call(obj).slice(8, -1);};getType(true); //"Boolean"getType("str"); //"String"getType(1); //"Number"
3、运算符
a、条件运算符c ? a : b
b、逗号运算符a, b
c、delete运算符delete obj.x
var obj = {x: 1};obj.x; //1delete obj.x;obj.x; //undefined//1、Object.defineProperty();来设置对象上属性//2、属性的configurable为true才可以被delete删除var obj = {};Object.defineProperty(obj, 'x', { configurable: false, value: 1});delete obj.x; //falseobj.x;1
d、in运算符"document" in window
window.x = 1;'x' in window; //true
e、instanceof运算符obj instanceof Func
f、typeof运算符typeof 100
g、new运算符new className
function Foo(){}Foo.prototype.x = 1;var obj = new Foo();obj.x;//1obj.hasOwnProperty('x');//falseobj.__proto__. hasOwnProperty('x');//true
h、this运算符new className
this; //window(浏览器)var obj = { func: function() {return this;}};obj.func(); //obj
i、void运算符void 0
都返回undefined
三、字符串
API:
- toUpperCase把一个字符串全部变为大写
- toLowerCase把一个字符串全部变为小写
- indexOf搜索指定字符串第一次出现的位置
- substring返回指定索引区间的子串
四、数组
API:
a、数组元素的添加和删除
- push 从数组尾部添加元素
- unshift 从数组头部添加元素
- pop 从尾部弹出
- shift 从头部弹出
b、数组方法
- join 将当前Array的每个元素都用指定的字符串连接起来,然后返回连接后的字符串
- reverse 将数组中成员颠倒排序
- sort 将数组元素排序,可以指定一个排序函数
- contact 把当前的Array和另一个Array连接起来,并返回一个新的Array
- slice 返回指定数组的一个片段或子数组
- splice 从指定的索引开始删除若干元素,然后再从该位置添加若干元素
var a = [1, 2, 3, 4];var b = a.splice(1,2);//a = 1,4 b = 2,3
c、ECMAScript 5中的数组新方法
- forEach 从头到尾遍历数组,为每个元素调用制定的函数
- map 把数组的每个元素传给指定的函数,并返回一个数组。
var a = [1, 2, 3];var b = a.map(function(x) { return x*x;}); //b = [1,4,9]
- filter 把数组的每个元素传给指定的函数,通过函数返回的布尔值决定是否在返回数组中添加该元素
var a = [1, 2, 3]; var b = a.filter(function(x){ return x % 2 !== 0;});//b = [1, 3]
- every 把数组的每个元素传给指定的函数,如果全部调用返回true则every函数返回true
- some 把数组的每个元素传给指定的函数,如果有调用返回true则every函数返回true
- reduce 用指定的函数对数组进行组合,生成单个值
var a = [1, 2, 3];var b = a.reduce(function(x, y){ return x + y;}, 0); //b = 6;
- indexOf / lastIndexOf在整个数组中搜索制定的元素
五、对象
JavaScript的对象是一种无序的集合数据类型,它由若干键值对(key — value)组成。
a、创建对象
- 对象直接量
var o = { foo : "bar"}
- 构造函数
var o = new Object();
- 原型继承
var p = Object.create(o);
b、类继承
1、原型,每个对象都有proto原型
c、对象属性
1、访问对象上的属性,会自下往上从对象本身到原型链上查找该属性
2、给属性赋值,并不会覆盖原型链上同属性的值
function Foo(){};Foo.prototype.b = 3;var obj = new Foo();obj.a = 1;'b' in obj; //trueobj.hasOwnProperty('b'); //falseobj.b = 5;obj.hasOwnProperty('b'); //trueobj.b; //5obj.b = undefined;obj.b; //undefineddelete obj.b; //true,删除属性用deleteobj.b; //3,c从原型链上查找delete obj.b; //trueobj.b; //还是3,不会删除原型链上的属性值
3、属性标签有:writable、enumerable、configurable、value、
d、geter/seter
+val转成number数据类型
e、对象方法
f、可执行对象
g、对象序列化
《详情请点击链接》
- JavaScript基础篇(一)— — 快速入门
- JavaScript快速入门(一)——JavaScript概览
- JavaScript入门基础 (一)
- JavaScript快速上手——基础篇
- JavaScript快速入门(一)
- Javascript基础笔记——入门篇
- javascript入门基础(一)
- javaScript--------基础入门(一)
- JavaScript基础系列之一 快速入门
- Spark (Python版) 零基础学习笔记(一)—— 快速入门
- Android基础——01快速入门
- 小仙女—快速入门javescript基础
- Android基础笔记(一)-快速入门
- Objective-C 快速入门--基础(一)
- JavaScript基础学习篇一——基础语法
- composer快速入门(一)——概述
- JavaScript快速入门(二)——JavaScript变量
- JavaScript快速入门(三)——JavaScript语句
- 四种参数传递的形式——URL,超链接,js,form表单
- Mac安装Caffe教程
- 2331: [SCOI2011]地板
- bzoj2126 排斥反应 矩阵乘法
- windows 2003视频教程
- JavaScript基础篇(一)— — 快速入门
- SQLite数据库的使用
- ZOJ-3905-Cake【贪心】【dp】
- 算法起步(1)
- 特定浏览器内核
- 整理:MAVEN常用命令
- Linux内核启动分析
- leetcode:Climbing Stairs 【Java】
- ubuntu系统中执行java项目的main方法