js 运行在客户端浏览器中 每个浏览器都有一个js 引擎
它是脚本语言 不需要编译 直接可以在浏览器里面执行的
功能:增强用户和HTML的交互过程,让页面具有动态效果,增强用户体验
js分为:ECMA:基本语法
BOM
DOM
js与HTML结合方式:
1:内部js 在HTML页面里写一个script标签 在标签里写js (可以在HTML的任意位置)
2:外部js 文件 用 <script src="" > <script>方式引入js文件
注释:
1:单行注释 //内容
2: 多行注释 /*
注释内容
注释内容
*/
数据类型:
1:原始数据类型
1:number 整数 小数 NaN(not a number 不是数字的数字类型)
2:string 字符串 ,他没有字符概念 'a'他也是个字符串
3:boolean true false
4:null 一个对象为空的占位符
5:undefined 未定义一个变量没有初始化,则默认为undefined
2:引用数据类型 对象
变量:一块存储数据的内存空间
强类型:就是说一但申明一段空间后 空间只能存储同种类型的数据
弱类型语言 :申请一段空间后 这段空间可以存储任意类型的数据
就是说强类型在开辟变量空间时规定了数据类型的存储块
弱类型在开辟的内存里面不规定存储的数据类型的数据
var 变量名 = 变量值;
//例如不同类型的数据类型
//数字类型
var num = 1;
var num1 = 1.2;
var num2 = NaN;
document.write(num+"-----------"+typeof num+"
");
document.write(num1+"-----------"+typeof num1+"
"+"
");
document.write(num2+"-----------"+typeof num2+"
");
//字符串类型的
var str = ‘abc’;
var str1 = “efd”;
document.write(str+"-----------"+typeof str+"
");
document.write(str1+"-----------"+typeof str1+"
");
//定义boolean
var flag = true;
var flag1 = false;
document.write(flag+"-----------"+typeof flag+"
");
document.write(flag1+"-----------"+typeof flag1+"
");
//定义null undefined
var obj = null;
var obj1 = undefined;
var obj2 ;
document.write(obj+"-----------"+typeof obj+"
");
document.write(obj1+"-----------"+typeof obj1+"
");
document.write(obj2+"-----------"+typeof obj2+"
");
//输出结果
NaN-----------number
abc-----------string
efd-----------string
true-----------boolean
false-----------boolean
null-----------object
undefined-----------undefined
undefined-----------undefined
null 的类型是object 就是空就是js 的null
运算符:
===包含数据类型的比较运算
运算类型转换
例如:
var b = +"123";
var c = +"as"
document.write(b+1);
document.write(c+1);
//输出
124NaN
//转化为数字类型
var flag = +true;
var f = false;
document.write(typeof flag+"<br>");
document.write(typeof f+"<br>");
//输出
number
boolean
小练习 99 乘法表
<style>
td{
border: 1px solid;
}
</style>
document.write("<table align='center'>")
for (var i=1;i<=9;i++){
document.write("<tr>")
for (var j=1;j<=i;j++){
document.write("<td>")
document.write(i+"*"+j+"="+(i*j)+" ");
document.write("</td>")
}
document.write("</tr>")
}
document.write("</table>>")
### 基本对象
/*
Function
Array
Boolean
Date
Math
Number
String
RegExp
Globle
*/
/*
Function 对象 方法就是对象 对象就是方法
1:创建
2:方法
3:属性
length代表形参个数
4:特点
1:方法形参类型不用写 返回类型也可以不写
2:方法就是个对象,如果定义同名方法不会报错,而是会覆盖掉上面的方法
3:方法的调用只和方法名有关,与参数列表无关
4:方法申明中有一个隐藏对象(数组)arguments,封装所有实际参数
5:调用
*/
//创建
//方式一 不用
/*var fun1 = new Function("a","b","alert(a)");
fun1(3,5);
alert(fun1.length);*/
//方式二 常用
/*function fun2(a,b) {//形参类型不用写
alert(a+b);
}
fun2(3,5);
//方式三 var 方法名 = function(){}
var fun3 = function (a,b) {
alert(a+b);
}*/
//参数个数
/*
求两个数的和
*/
/*function add(a,b) {
return a+b;
}
var c = add(2,4);
alert(c);*/
/*
任意个数的和
*/
/*function add() {
var sum =0;
for (var i = 0; i <= 10; i++) {
sum=sum+arguments[i];
alert(sum);
}
}
add(1,3);*/
/*
Date 对象
1:创建
var date= new Date();
2:方法
tolocalString() 返回当前时间的本地时间
getTime() 返回当前时间的毫秒时间数
*/
/*var date = new Date();
document.write(date+"<br>");
document.write(date.toLocaleString()+"<br>");
document.write(date.getTime());*/
/*
Math对象
1:创建
特点:
不用创建
2:方法
random() 0~1 含头不含为
cell() 向上去取整
floor() 向下取整
round() 四舍五入
3:属性
*/
/*document.write(Math.PI+"<br>");
document.write(Math.random()+"<br>");//随机数
document.write(Math.round(3.14)+"<br>");//四舍五入
document.write(Math.round(3.66)+"<br>");
/!*
1到100de 随机数
*!/
document.write(Math.floor(Math.random()*100)+1);*/
RegExp对象
/*
正则表达式 RegExp:
1:正则表达式定义字符串入组成规则
\d一个数字
\w数字字母下划线
2:量词
?0次或1次
* 0次或多次
+ 1次或多次
{m,n}m到n次
/
/
正则
1:创建
var reg = new RegExp();
var reg = ***;
2:方法
test()验证指定字符串是否符合指定的规则
*/
//创建
/var reg = new RegExp("\w{6,16}");
var reg1 = /^\w{6,16}$/;
var username = “zhangsan”;
var flag = reg1.test(username);
alert(flag);/
Global
1:特点 全局对象 不用创建 只需调用就可以
2:方法
encodeURL() //编码
decodeURL() //解码
encodeURLComponent() //编码
decodeURLComponent() //解码
parseInt();将字符串转化成数字 也可以在变量前加+转化
他将不是数字的串忽略,只解析数字
isNaN()
*/
/*var str = "中华人民共和国";
var endode = encodeURI(str);
document.write(endode+"<br>");
var decode = decodeURI(endode);
document.write(decode+"<br>");
//parseInt()
var str1 = '123';
var num = parseInt(str1);
document.write(num+1);
var str2="123asd";
var num2 = parseInt(str2);
document.write(num2+1);*/