JavaScript学习
2017-08-18 16:41
141 查看
JavaScript是Netscape公司开发的一种基于客户浏览器,基于面向对象,事件驱动式的脚本语言。
JavaScript是属于web语言,它适用于PC,笔记本电脑,平板电脑和移动电话
JavaScript特点:
1. JavaScript是一种解释性脚本语言
2. JavaScript是基于对象的脚本编程语言
3. 简单性
4. 安全性
5. 动态性
6. 跨平台性
JavaScript作用:
交互式操作,表单验证,网页特效,web游戏,服务器脚本开发
在html页面中嵌入JavaScript的代码有两种方法:
1. 使用JavaScript:前缀构建执行JavaScript代码
2. 使用<scrip…/>标签来包含JavaScript代码
但这两种方法不能做到JavaScript和HTML文件进行有效的分离,因此
3. 导入外部的JavaScript文件
可以将JavaScript脚本单独保存到一个*.js文件,HTML页面导入该 .js文件即可
导入语法:
用方法一写一个简单的JavaScript
用方法二
用方法三
js文件
HTML文件
1. 隐式定义:直接给变量赋值
显示定义:使用var关键字定义变量
变量名称遵循规则:
1. 首字母必须是字母,下划线,或者$
2. 不能使用关键字
3. 对大小写敏感
JavaScript常用数据类型:
1. 数值类型:整数,浮点数
2. 布尔类型
3. 字符串类型 :单引号或双引号括起来
4. 未定义类型:专门用来确定一个已经创建但是没有初值的变量
5. null
类型转换:
通过+号或者toString()方法将数值转换成字符串
通过parseInt()将字符串转换为整型
通过parseFloat()将字符串转换为浮点型
parseInt(“hello”) —- 输出NaN(not a number)
parseFloat(“36chen”) —- 输出36 (后面字母忽略)
parseFloat(435.34.564)—-输出435.34
JavaScript中字符串常用操作方法:
JavaScript中的字符串可以用单引号括起来
JavaScript中比较两个字符序列是否相等使用==即可,无需使用equals()
使用正则表达式目的:
给定的字符串是否符合正则表达式的过滤逻辑(“匹配”)
可以通过正则表达式,从字符串中获取我们想要的特定部分·
特点:
灵活性,逻辑性和功能性非常强
可以迅速的用极简单的方式达到字符串的复杂控制
创建正则表达式的语法:
第一种:
第二种:
RegExp对象的常用方法:
exec(str) : 检索字符串中指定的值。返回找到的值,并确定其位置
text(str) : 检索字符串中是否有满足条件的值。返回true或false
第一种实例:
第二种:
正则表达式所支持的常用通配符:
正则表达式所支持的常用通配符:
小例子:
返回true
返回true
返回true
返回true
小例子:
true
true
false
必须是两个o连在一起的序列
true
小例子:
true
若不写g,则始终查到的是第一个B,不会继续往下查找,不管输出几次alert都是true
但写了g以后,执行全局匹配,字符串只有两个B,因此输出第三个alert后,返回的是false
若没有m则返回false
加了m后,/n换行,m会换行匹配,因此返回true
验证E-mail地址:
reg表示@前面只要是0-9数字,a-z,A-Z字母都行,@后也是,.不能直接表示,必须用转义字符.表示,.后面com,cn,org都行
JavaScript为数组提供了一个length属性来得到数组的长度
数组特点:
数组长度可变,总长度等于数组的最大索引值+1
同一数组中的元素类型可以互不相同
当访问未赋值的数组元素时,该元素为undefined,不会数组越界
小例子:
== 和 ===:
=== 叫严格等于
如:“10”和10,若用==比较,返回true,若用===比较,则认为左边是字符串右边是数字,返回false
小例子:
逗号运算符
返回 3
因为逗号运算符返回最右边的一个值,因此a=3
返回undefined
void强调右边不会给任何值给a
返回 true
if 和 switch
循环语句:
while , do while ,for ,for in
匿名函数
如:
使用Function类构造匿名函数
如:
小例子:
函数的形参不用申明类型,也不用var
大多数优秀的JavaScript框架都使用第二种“匿名函数”语法来定义函数,它的可读性好
函数的返回值
JavaScript中的函数没有声明返回类型,当函数想要返回值的时候直接加上return值语句即可,加入不加表示无返回值
局部变量和局部函数
变量有局部变量和全局变量之分。直接定义的变量是全局变量,在函数中定义的变量称为局部变量,局部变量只在函数内有效,如果全局变量和局部变量使用相同的变量名,则局部变量将覆盖全局变量
局部函数是在函数中定义的,外部函数可以直接调用其内部的函数,在外部函数外直接调用内部函数是不可以的,所以只有当外部函数被调用时,内部局部函数才会被执行
对象.函数的引用;
//当声明的一个函数没有指明分配给哪个对象使用的时候,默认分配给Windows对像
例如:
以call方法调用函数
函数引用.call(调用者,参数1,参数2…..);
例如:
以apply方法调用函数
函数引用.apply(调用者,argument);
//argument相当于是数组,用来存放多个参数。和call调用方法类似
例如:
创造后两种调用方法的作用:
例如:
JavaScript是属于web语言,它适用于PC,笔记本电脑,平板电脑和移动电话
JavaScript特点:
1. JavaScript是一种解释性脚本语言
2. JavaScript是基于对象的脚本编程语言
3. 简单性
4. 安全性
5. 动态性
6. 跨平台性
JavaScript作用:
交互式操作,表单验证,网页特效,web游戏,服务器脚本开发
在html页面中嵌入JavaScript的代码有两种方法:
1. 使用JavaScript:前缀构建执行JavaScript代码
2. 使用<scrip…/>标签来包含JavaScript代码
<body> <!--第一种方法--> <a href="javascript:alert('使用前缀运行JavaScript');"> 运行JavaScript </a> <!--第二种方法--> <script type="text/javascript"> alert("直接运行的JavaScript") </script> </body>
但这两种方法不能做到JavaScript和HTML文件进行有效的分离,因此
3. 导入外部的JavaScript文件
可以将JavaScript脚本单独保存到一个*.js文件,HTML页面导入该 .js文件即可
导入语法:
<script src="outer.js" type="text/javascript"> </script>
用方法一写一个简单的JavaScript
<html> <head> <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> <title>javascript</title> </head> <body> <a href="javascript:alert('hello javascript');"> 运行JavaScript </a> </body> </html>
用方法二
<head> <script type="text/javascript"> alter("hello javascript"); </script> </head>
用方法三
js文件
alter("hello javascript");
HTML文件
<head> <script src="1.js" type="text/javascript"></script> </head>
JavaScript基础语法:
JavaScript是弱类型脚本语言,使用变量之前,可以无需定义,当使用某个变量的时候直接使用即可,主要有以下两种定义:1. 隐式定义:直接给变量赋值
temp="hello"; alert(temp);
显示定义:使用var关键字定义变量
var temp;
temp="hello"; alert(temp);
变量名称遵循规则:
1. 首字母必须是字母,下划线,或者$
2. 不能使用关键字
3. 对大小写敏感
JavaScript常用数据类型:
1. 数值类型:整数,浮点数
2. 布尔类型
3. 字符串类型 :单引号或双引号括起来
4. 未定义类型:专门用来确定一个已经创建但是没有初值的变量
5. null
类型转换:
通过+号或者toString()方法将数值转换成字符串
通过parseInt()将字符串转换为整型
通过parseFloat()将字符串转换为浮点型
parseInt(“hello”) —- 输出NaN(not a number)
parseFloat(“36chen”) —- 输出36 (后面字母忽略)
parseFloat(435.34.564)—-输出435.34
JavaScript中字符串常用操作方法:
JavaScript中的字符串可以用单引号括起来
JavaScript中比较两个字符序列是否相等使用==即可,无需使用equals()
正则表达式:
正则表达式是对字符串操作的一种逻辑公式,就是用事先定义好的一些特定字符,及这些特定字符的组合,组成一个“规律字符串“,用来表达对字符串的一种过滤逻辑使用正则表达式目的:
给定的字符串是否符合正则表达式的过滤逻辑(“匹配”)
可以通过正则表达式,从字符串中获取我们想要的特定部分·
特点:
灵活性,逻辑性和功能性非常强
可以迅速的用极简单的方式达到字符串的复杂控制
创建正则表达式的语法:
第一种:
var reg=/pattern/;
第二种:
var reg=new RegExp(pattern);
RegExp对象的常用方法:
exec(str) : 检索字符串中指定的值。返回找到的值,并确定其位置
text(str) : 检索字符串中是否有满足条件的值。返回true或false
第一种实例:
<script> var str="Brainy is the new sexy"; var reg=/new/; alert(reg.exec(str)); </script>
第二种:
<script> var str="Brainy is the new sexy"; var reg=new RegExp('new'); alert(reg.exec(str)); </script>
正则表达式所支持的常用通配符:
var str="hello123" var reg=/\d/ alert(reg.test(str));
var str="helloworld" var reg=/\s/; alert(reg.test(str));
var str="helloworld" var reg=/\bh/; //是否以h开头 alert(reg.test(str));
正则表达式所支持的常用通配符:
小例子:
var str="hello world" var reg=/[ha]/; //有h无a alert(reg.test(str));
返回true
var str="123A" var reg=/[0-9]/; alert(reg.test(str));
返回true
var str="AAA" var reg=/[A-z]/; alert(reg.test(str));
返回true
var str="hello world" var reg=/(red|hello|blue)/; alert(reg.test(str));
返回true
正则表达式量词:
小例子:
var str="hello world" var reg=/e+/; //匹配至少包含一个e的字符串 alert(reg.test(str));
true
var str="helloo" var reg=/o{2}/; //匹配包含2个o的序列字符串 alert(reg.test(str));
true
var str="okklo" var reg=/o{2}/; //匹配包含2个o的序列字符串 alert(reg.test(str));
false
必须是两个o连在一起的序列
var str="hello" var reg=/^h/; //以h开头 alert(reg.test(str));
true
正则表达式的修饰符:
小例子:
var str="BBS" var reg=/b/i; //i-对大小写不敏感 alert(reg.test(str));
true
var str="BSADRGBSF" var reg=/B/g; alert(reg.test(str)); alert(reg.test(str)); alert(reg.test(str));
若不写g,则始终查到的是第一个B,不会继续往下查找,不管输出几次alert都是true
但写了g以后,执行全局匹配,字符串只有两个B,因此输出第三个alert后,返回的是false
var str="test\nbbs"; var reg=/^b/m; alert(reg.test(str));
若没有m则返回false
加了m后,/n换行,m会换行匹配,因此返回true
验证E-mail地址:
var str="123abc@qq.com"; var reg=/^[0-9a-zA-Z_-]+@[0-9a-zA-Z_-]+\.(com|cn|org)/; alert(reg.test(str));
reg表示@前面只要是0-9数字,a-z,A-Z字母都行,@后也是,.不能直接表示,必须用转义字符.表示,.后面com,cn,org都行
JavaScript数组
数组定义:var arr1=[1,2,3]; //定义时直接赋值 var arr2=[]; //定义一个空数组 var arr3=new Array(); //定义一个数组并通过索引来赋值 arr3[0]=1; arr3[3]="abc";
JavaScript为数组提供了一个length属性来得到数组的长度
数组特点:
数组长度可变,总长度等于数组的最大索引值+1
同一数组中的元素类型可以互不相同
当访问未赋值的数组元素时,该元素为undefined,不会数组越界
小例子:
var arr=[1,"abc",true]; for(i=0;i<arr.length;i++){ document.write(arr[i]+"<br/>"); //document.write()常用来网页向文档中输出内容。 }
var arr=[]; arr[0]=1; arr[2]="abc"; document.write(arr[0]+"<br/>"); document.write(arr[1]+"<br/>"); document.write(arr[2]+"<br/>");
JavaScript中常用运算符
== 和 ===:
=== 叫严格等于
如:“10”和10,若用==比较,返回true,若用===比较,则认为左边是字符串右边是数字,返回false
小例子:
逗号运算符
var a,b,c,d; a=(b=5,c=2,d=3); alert(a);
返回 3
因为逗号运算符返回最右边的一个值,因此a=3
var a,b,c,d; a=void(b=5,c=2,d=3); alert(a);
返回undefined
void强调右边不会给任何值给a
var a=[1,2]; alert(a instanceof Array); //a是不是一个数组
返回 true
流程控制语句
分支语句:if 和 switch
循环语句:
while , do while ,for ,for in
var arr=new Array(5); arr[0]=1; arr[2]=3; arr[3]="true"; arr[5]=true; for(var index in arr){ document.write(index+"<br/>"); }
JavaScript函数
命名函数<script typr="text/javascript"> function 函数名(参数列表){ 要执行的语句块; } </script>
匿名函数
<script typr="text/javascript"> function (参数列表){ 要执行的语句块; } </script>
如:
var f=function(name){ alert("姓名"+name); } f(张三);
使用Function类构造匿名函数
new function(参数列表,函数执行体);
如:
var f=new Function('name','age',"alert(....);");
小例子:
var f=function(name,age){ alert("名字"+name+",年龄"+age); } f('张三',40);
函数的形参不用申明类型,也不用var
大多数优秀的JavaScript框架都使用第二种“匿名函数”语法来定义函数,它的可读性好
函数的返回值
JavaScript中的函数没有声明返回类型,当函数想要返回值的时候直接加上return值语句即可,加入不加表示无返回值
局部变量和局部函数
变量有局部变量和全局变量之分。直接定义的变量是全局变量,在函数中定义的变量称为局部变量,局部变量只在函数内有效,如果全局变量和局部变量使用相同的变量名,则局部变量将覆盖全局变量
局部函数是在函数中定义的,外部函数可以直接调用其内部的函数,在外部函数外直接调用内部函数是不可以的,所以只有当外部函数被调用时,内部局部函数才会被执行
调用函数的方式
直接调用函数对象.函数的引用;
//当声明的一个函数没有指明分配给哪个对象使用的时候,默认分配给Windows对像
例如:
function show(name,age){ alert(name,age); } window.show("张三",12);
以call方法调用函数
函数引用.call(调用者,参数1,参数2…..);
例如:
function show(name,age){ alert(name,age); } show.call(window,"张三",12);
以apply方法调用函数
函数引用.apply(调用者,argument);
//argument相当于是数组,用来存放多个参数。和call调用方法类似
例如:
function show(name,age){ alert(name,age); } show.apply(window,["张三",12]);
创造后两种调用方法的作用:
例如:
function show(arr,func){ //arr是数据,func是函数 func.call(window,arr); } show([1,2,3,4],function(arr){ for(i in arr){ document.write(arr[i]+"<br/>"); } })
常用内置对象
对象是JavaScript的特性之一,这里介绍Date和Math相关文章推荐
- javascript学习笔记(六)--资料
- 【JavaScript学习系列】(1)——JavaScript语言概述
- JavaScript学习系列4 案例研究:图片库改进版
- JavaScript学习(三)
- javascript学习笔记之二 ---DOM
- JavaScript学习(二)
- javascript学习
- javascript学习(三)——常用方法(2)
- JavaScript学习笔记1--语法篇摘录
- Javascript学习笔记【第三章】1
- Javascript学习笔记-1(类型、变量、for语句、数组、字符串、原型对象、函数对象)
- javascript学习笔记 - 引用类型 Date
- JavaScript学习
- javascript学习(十四)内建对象之Date
- JavaScript学习总结【2】、JS基础
- javascript学习(七)— 函数定义和调用
- JavaScript学习
- JavaScript学习(一)
- JavaScript学习
- JavaScript学习(1)初识JavaScript