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、对象序列化
这里写图片描述

《详情请点击链接》

0 0
原创粉丝点击