您的位置:首页 > Web前端 > JavaScript

javascript基础

2016-07-23 19:36 477 查看

javascript学习笔记

简介

javascript是什么?

JavaScript是一种运行在浏览器中的解释型、面向对象、事件驱动式的编程语言。

javascript能干什么?

交互式操作;表单验证;网页特效;Web游戏;服务器脚本开发等。

javascript有何特点?

事件驱动、跨平台、动态、交互式的操作方式

javascript与ECMAScript的区别?

ECMAScript是一种语言标准,javascript是语言标准的实现。

javascript执行方式?

解释执行(由上而下)

javascript执行平台?

web浏览器,浏览器有两大对象模型:DOM和BOM,js的最主要功能就是操纵这两个模型里面的东西

引入

直接嵌套在在网页的任何地方,一般放在标签中或者标签后,建议使用后者,因为js解释执行从上到下,可避免js代码延迟加载导致网页的显示。

将代码单独写在一个js文件中,通过在HTML中通过引入这个文件。

基本语法

注释

单行注释://

多行注释:/* */

注意

JavaScript区分大小写;

语句末尾不强制加分号;

变量声明

规则

可以用 _、数字、字母、$、组成 , 且数字不能开头,声明变量用var变量名来声明。

变量名也不能是JavaScript的关键字,如if、while等。

如果不写var时,则为全局变量

赋值
变量名 = 变量值;

变量作用域

全局变量:省略var,或在函数外声明,全局变量可在整个脚本中被使用,可在不同的窗口中相互引用(指定窗口名)

局部变量:在函数内声明

数据类型

数值:整数、浮点数,整数:由正负号、数字构成,八进制、十进制、十六进制,浮点数:由正负号、数字和小数点构成,常规记数法、科学记数法;

逻辑值:布尔值,true、false;

字符串值: 单引号、双引号;

空值: null

未定义值: undefined,根本不存在的对象、已定义但没有赋值的量;

数组:是一组按顺序排列的集合,集合的每个值称为元素。JavaScript的数组可以包括任意数据类型,写法:"[]" 包围 ,"," 号隔开每一个值,例如:[1, 2, 3.14, 'Hello', null, true];,还可以用Array()函数实现;

对象:是一组由键-值组成的无序集合,例如:var i = {'name':'leo','age':23};,可以通过i.name或者i.age获取一个对象的属性,即对象变量.属性名。后面会详细介绍。

运算符

算术运算符:+  -  *  /  %(取余)  ++(递增)  --(递减)

赋值运算符:=  +=  -=  *=  /=  %=

比较运算符:==  !=  ===(值及类型)  !==(值及类型) <  <=  >  >=

逻辑运算符:&&  ||  !

拼接运算符:+

特殊运算符:1、new运算符:创建对象(实例)

    格式:对象名称=new 对象类型(参数)

2、this运算符:表示当前对象

    格式:this[.属性]

3、条件运算符:三元运算符

格式:<条件表达式> ? 第一个值:第二个值

语句

条件语句

有if...else和switch语句两种

//if语句

if(表达式){
语句
}else if(表达式){
语句
}else{
语句
}

//switch语句

switch (<表达式>) {
case <数值1>:<语句组1>
break;
case <数值2>:<语句组2>
break;
...
default <语句组>
}


循环语句

有for、while、do...while、for...in语句

//for语句,常用于利用索引来遍历数组

for (<初始表达式>;<条件表达式>;<变动量表达式>){
<语句组>
}

var arr=['a','b','c','d'];
for(var i=0;i<arr.length;i++){
console.log(arr[i]);
}

//while语句

while (<表达式>){
<语句组>
}

//do...while语句

do {
<语句组>
} while (<表达式>)

//for...in语句

for ( 变量 in 对象 ){
<语句组>
}

var i={
name:'leo',
age:'27',
city:'shanghai'
};
for(var key in i){
console.log(key);
}


函数

函数概念:独立于主程序的、具有特定功能的一段程序代码块。

函数定义:

//一般函数

function 函数名([参数[,参数...]]){
<语句组>
[return <表达式>;]
}

//匿名函数

var fun=function(x){
if (x >= 0) {
return x;
} else {
return -x;
}
};


函数调用:

函数名([参数[,参数...]]);

<script>
function tell(name){
document.write("I am"+name);
}
tell("leo");
</script>


事件

定义:可以被 JavaScript 侦测到的行为,事件通常与函数配合使用,当事件发生时函数才会执行。

常见事件:onclick、onfocus、onblur、onmousedown、onselect、onsubmit

调用:浏览器等待用户的交互操作,并在事件发生时,自动调用事件处理函数,完成事件处理过程。

对象详解

原则:在js中一切皆对象

Date对象:
var date=new Date();
date;
//格式:日期对象名称.方法([参数])
date.getFullYear();//2016 年份
date.getMonth(); // 月份,注意月份范围是0~11,5表示六月
date.getDate(); // 日期
date.getDay(); //  表示星期几
date.getHours(); // 小时, 24小时制
date.getMinutes(); //  分钟
date.getSeconds(); // 秒
date.getMilliseconds(); // 毫秒数
date.getTime(); //  以number形式表示的时间戳
/**
*其他方法
Date.parse(日期字串) 返回对应日期基线的毫秒
setTime(时间值) 指定一日期对象的值
toGMTString() 以GMT格式表示日期对象
toUTCString() 以GMT格式表示日期对象
*/

数组对象
/**
*
*新建数组
  1. 数组对象名称=new Array([元素个数])
  2. 数组对象名称=new Array([[元素1][,元素2,...]])
  3. 数组对象名称=[元素1[,元素2,...]]
*/
var j = ['A', 'B', 'C', 1, 2, 3];
var arr = ['A', 'B', 'C'];
var s=new Array('apple','orange','banan');
s.length;//数组的属性length
s.indexOf('orange');//搜索一个指定的元素的位置
s.slice(0,1);//截取Array的部分元素,然后返回一个新的Array:
s.push('A', 'B');//向Array的末尾添加若干元素
s.pop();//把Array的最后一个元素删除掉
s.unshift('hello'); //往Array的头部添加若干元素
s.shift();//把Array的第一个元素删掉
s.sort();//默认排序
s.reverse();//数组翻转
s.splice();//从指定的索引开始删除若干元素,然后再从该位置添加若干元素
arr.concat([1, 2, 3]);//当前的Array和另一个Array连接起来,并返回一个新的Array:
j.join('=');//当前Array的每个元素都用指定的字符串连接起来,然后返回连接后的字符串

面向对象

三大特性:封装、继承、多态

注意:1. JavaScript不区分类和实例的概念,而是通过原型(prototype)来实现面向对象编程。

2. JavaScript的原型链和Java的Class区别就在,它没有“Class”的概念,所有对象都是实例,所谓继承关系不过是把一个对象的原型指向另一个对象而已

其他

JSON

序列化:

var xiaoming = {
name: '小明',
age: 14,
gender: true,
height: 1.65,
grade: null,
'middle-school': '\"W3C\" Middle School',
skills: ['JavaScript', 'Java', 'Python', 'Lisp']
};

JSON.stringify(xiaoming);


反序列化

JSON.parse('[1,2,3,true]');
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: