JavaScript基础第01天
一、概念
一门客户端脚本语言,增强用户与HTML交互过程,可以控制HTML,让页面有一些动态效果,增强用户体验
运行在客户端浏览器中,每一个浏览器中都有javascript的解析引擎
脚本语言:不需要编译,可以直接在浏览器解析执行
二、历史
90年代的时候,网速是很慢的,当利用表单注册时,把数据发送到服务器,填写表单如果数据出现问题,服务器就会响应,告诉是什么问题,但是这一来一回,很慢很慢,浪费时间。这时候就有人提出,能不能设计一种脚本语言,让表单的数据格式在客户端那就校验完成,正确之后再发送给服务器。
1992年,Nombase公司开发了第一门客户端脚本语言,专门用于表单验证。命名:C–,虽然C++很火,但是当时的程序员一看见C–,就以为他很难,没人想去学。后来更名为ScriptEase,才火起来
1995年,Netscape(网景)公司,借助C–的灵感,开发了一门客户端脚本语言:LiveScript。但是网景公司是专门做浏览器的,对于语言的编写,还是存在缺陷,就找到了SUN公司的专家合力在LiveScript的基础上进行开发,之后命名为javascript(增java热度)
1996年,微软也想开发出客户端脚本语言来搭载在自己的IE浏览器上,就抄袭JavaScript开发出来JScript
这就出现了三足鼎立了,可是各有各家,市场就被搅乱了。。。
1997年,ECMA(欧洲计算机制作商协会)就站了出来,让客户端脚本语言来统一标椎,ECMAScript标椎。
现在的要学习的JavaScript = ECMAScript标准+ JavaScript自己特有的(BOM+DOM)
三、ECMAScript
1.基本语法
1).与HTML结合
- 内部js:在HTML中任意位置定义
2).注释
- //单行注释
- /* 多行注释 */
3).数据类型
- 原始数据类型:
- number:数字。整数、小数、NaN
- string:字符串
- boolean:true和false
- null:一个空的占位符
- undifined:如果一个变量没有给初始值,则默认赋值为undifined
- 引用数据类型:对象
4).变量
一小块存储数据的内存空间
js是弱类型,申请空间的时候不需要指定存储类型,想存什么存什么。var a = 3; a = “abc”;
java是强类型,申请空间的时候需要指定存储类型,以后这个变量只能存那个数据类型。int a = 3; a = 4;
typeof(a)可以查询变量a的数据类型
5).运算符
6).流程控制语句
2.基本对象
Function
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>wangningbo</title>
<script>
/* Function对象
1.创建对象三种方式
2.属性:
length:fun.length表示形参的个数
3.特点:
1.方法定义,形参的类型不用写
2.方法是一个对象,如果定义相同名称的方法,会覆盖
3.在JS中,方法的调用只与定义方法的名字有关,与传入的参数列表无关
4.传入的参数会被封装成数组,arguments
*/
//创建方式一(基本不用,了解)
var fun1 = new Function("a","b","alert(a+b);")
fun1(1,2)
//创建方式二
function fun2(a,b) {
alert(a+b)
}
fun2(1,2)
//创建方式三
var fun3 = function(a,b) {
alert(a+b)
}
fun2(3,2)
</script>
</head>
<body>
</body>
</html>
Array
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>wangningbo</title>
</head>
<script>
/*
* Array:数组对象
* 1.创建:
* 1. var arr = new Array(元素列表);
* 2. var arr = new Array(默认长度);
* 3. var arr = [元素列表]
* 2.方法:
* join(分隔符) 把数组的所有元素放入一个字符串。元素通过指定的分隔符进行分隔。
* push() 向数组的末尾添加一个或更多元素,并返回新的长度。
* 3.属性:
* length
* 4.特点:
* 1.JS中,数组元素的内容是可变的
* 2.数组长度可变
* */
var arr1 = new Array(1,2,3);
var arr2 = new Array(4);
var arr3 = [1,2,3]
document.write(arr1+"</br>")
document.write(arr2+"</br>")
document.write(arr3+"</br>")
var arr4 = [1,"abc",true]
document.write(arr4+"</br>")
document.write(arr4.join("."))
arr4.push([2,3])
document.write(arr4+"</br>")
arr4.push("wer")
document.write(arr4+"</br>")
</script>
<body>
</body>
</html>
Boolean
Date
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>wangningbo</title>
<script>
/*
* Date:日期对象
*
* 1.创建:
* var date = new Date();
* 2.方法:
* toLocaleString() 根据本地时间格式,把 Date 对象转换为字符串。
* getTime() 返回 1970年 1月1日至今的毫秒数。
*
* */
var date = new Date();
document.write(date+"</br>")
document.write(date.toLocaleString()+"</br>")
document.write(date.getTime()+"</br>")
</script>
</head>
<body>
</body>
</html>
Math
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>wangningbo</title>
<script>
/*
* Math:数学对象
* 1.无需创建,直接使用
*
* 2.方法:
* random() 返回 [0,1) 之间的随机数。
* ceil(x) 对数进行上舍入,3.14变成4
* floor(x) 对数进行下舍入,3.14变成3
* round(x) 把数四舍五入为最接近的整数。
* */
var num = Math.floor(Math.random() * 100) + 1;
document.write(num);
</script>
</head>
<body>
</body>
</html>
Number
String
RegExp
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>wangningbo</title>
<script>
/*
* RegExp:正则表达式对象
* 了解正则表达式规则:
* 1.单个字符:[]
* 从中括号中选择一个匹配成功
* 如:[a],[ab],[0-9],[a-z],[A-Z]
* 特殊字符:
* \d:[0-9]
* \w:[a-z0-9A-Z]
* 2.量词符号:
* ?: 1次或0次
* *:0次或多次
* +:1一次或多次
* {m,n}:<=m数量<=n
* 3.开始结束符号:
* ^:开始
* $:结束
* 对象:
* 1.创建:
* var reg = new RegExp("正则表达式");
* var reg = /正则表达式/;
* 2.方法:
* test(str) 检索字符串中指定的值。返回 true 或 false。
*
* */
//要添加转义字符
var reg1 = new RegExp("^\\w{2,5}$");
var reg2 = /^[1]\d{2,6}$/;
var username = "122";
var flag= reg2.test(username)
alert(flag)
</script>
</head>
<body>
</body>
</html>
Global
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>wangningbo</title>
<script>
/*
* Global:对象
* 1.这个对象里面的方法不需要对象调用就可以直接使用
* 2.方法:
* decodeURI() 解码某个编码的 URI。
* encodeURI() 把字符串编码为 URI。
*
* decodeURIComponent() 解码一个编码的 URI 组件。结果和上面一样,但放的字符可以更多
* encodeURIComponent() 把字符串编码为 URI 组件。
* parseInt() 解析一个字符串并返回一个整数。
* eval() 计算JavaScript字符串,并把它作为脚本代码来执行。
* 3.url编码:
* */
var str = "韩芊";
var encode = encodeURI(str);
document.write(encode+"<br>");
var decode = decodeURI(encode);
document.write(decode+"<br>");
var encode1 = encodeURIComponent(str);
document.write(encode1+"</br>");
var decode2 = decodeURIComponent(encode1);
document.write(decode2+"</br>");
var str1 = "123";
var num = parseInt(str1)
document.write(num+2)
var str3 = "alert('123')";
eval(str3)
</script>
</head>
<body>
</body>
</html>