历史
原名叫LiveScript,是由美国网景公司开发的
是一种脚本语言,在网页中使用,运行在浏览器中。
脚本语言:不需要编译的语言 sql python html css javaScript
直接有某种解释器(引擎)解释执行,逐行从上向下解释执行
网景公司和sun公司合作,将LiveScript改名为javaScript
1.javaScript代码写在哪
2.变量如何声明
3.数据类型
4.运算符
5.流程控制,循环语句
java是强类型语言 数据类型 值
javaScript弱类型
变量是没有类型的,给他赋了什么类型的值,它的类型就是什么
使用var关键字声明,没有具体的类型
只声明变量,如a; 会报错
var a = 10;
var b;
b = 10.5;
alert(b)
alert(typeof(b));
//typeof()返回变量的数据类型
var c = true;
var d = false;
alert(a==b);
var e = "abc";
var f = 'def';
alert(f);
var g;
alert(g==undefined);
var date = new Date();
alert(date.getFullYear());
alert(date.getMonth()+1);
大致与Java相同,下述都是有与Java中不同的功能的运算法
+ 加法 字符串连接
var a = "10";
var b = 5;
var c = 10;
var d ="a";
alert(a+b);//105
alert(b+c);//15
-、*、/、%
会把表达式中数字字符串尝试类型转换 如果字符串不能转换为数值返回NaN
alert(b-c);//-5
alert(a-b);//5 "字符串(数字)"- 数值 = 数值
alert(c-d)//NaN not a number
alert(a==c);//true
alert(a===c);//false
function 函数名(参数(不需要定义类型)){
函数体
}
function test(){
alert("你好")
}
function test(a,b){
alert(a+b)
}
function test (a,b){
return a+b;
}
test();//方式1调用
test("abc",new Date());//方式2调用
var c = test(10,5);//方式3调用
alert(c);
系统中已经定义好了,可以直接调用的函数
把浮点数转为整数
把字符串数字转为整数,如果转换内容是字符串,字母不能开头,只将开头的数字部分转换
例如alert(parseInt("1a0"));输出结果只有1
将字符串数字转换为浮点数
返回变量的数据类型
var s = "2+3*4";
把传入进来的字符串当作js的脚本执行
eval(alert(3.1415)); 弹窗显示3.1415
在浏览器调试的控制台触发
length 用法:返回该字符串的长度.
charAt(n):返回该字符串位于第n位的单个字符
indexOf(char):返回指定char首次出现的位置
lastIndexOf(char) :跟 indexOf() 相似,不过是从后边开始找
substring(start,end) :返回原字符串的子字符串,该字符串是原字符串从start位置到end位置的前一位置的一段
substr(start,length) :返回原字符串的子字符串,该字符串是原字符串从start位置开始,长度为length的一段
split(分隔符字符) :返回一个数组,该数组是从字符串对象中分离开来的,<分隔符字符>决定了分离的地方,它本身不会包含在所返回的数组中。
例如:'1&2&3&4&678'.split('&')返回数组:1,2,3,4,678。
var <数组名> = new Array();
这样就定义了一个空数组。
<数组名>[下标] = 值;
var <数组名> = new Array(<元素1>, <元素2>, <元素3>...);
或
var <数组名> = [<元素1>, <元素2>, <元素3>...];
length :数组的长度,即数组里有多少个元素。
join(<分隔符>):返回一个字符串,该字符串把数组中的各个元素串起来,用<分隔符>置于元素与元素之间。
reverse():使数组中的元素顺序反过来。如果对数组[1, 2, 3]使用这个方法,它将使数组变成:[3, 2, 1]。
sort():使数组中的元素按照一定的顺序排列。如果不指定<方法函数>,则按字母顺序排列。
对数字排序需要调用排序函数。
a.sort(numbersort);
numbersort排序函数,当作参数传入到sort函数中
function sortNumber(a,b){
return a - b;
}
new Date() 返回当日的日期和时间
getFullYear() 返回四位数字年份
getDate() 返回一个月中的某一天 (1 ~ 31)
getMonth() 返回月份 (0 ~ 11)
getDay() 返回一周中的某一天 (0 ~ 6)
getHours() 返回 Date 对象的小时 (0 ~ 23)
getMinutes() 返回 Date 对象的分钟 (0 ~ 59)
getSeconds() 返回 Date 对象的秒数 (0 ~ 59))
提供对数据的数学计算。
PI 返回圆周率π(3.1415926535...)。
Math.abs(x) 绝对值计算;
Math.pow(x,y) 数的幂;x的y次幂
Math.sqrt(x) 计算平方根;
Math.ceil(x) 对一个数进行上舍入
Math.floor(x) 对一个数进行下舍入。
Math.round(x) 把一个数四舍五入为最接近的整数
Math.random() 返回 0 ~ 1 之间的随机数
Math.max(x,y) 返回 x 和 y 中的最大值
Math.min(x,y) 返回 x 和 y中的最小值
主要在body标签使用
//点击按钮后调用test()函数,触发事件的方式onclick可以改变成其他方式
DOM是Document Object Model文档对象(网页中的标签)模型的缩写.
通过html dom,可用javaScript操作html文档的所有标签
通过html标签事件触发JavaScript函数
需要在JavaScript函数对网页的标签进行操作
如何在JavaScript中操作网页中的标签
JavaScript认为网页中的每个标签都是一个对象,在js中把这一类标签对象称为html dom对象
在网页加载完毕后,在js中生成一个document对象(表示整个html文档),里面提供了一个方法getElementById();
var tobj1 = document.getElementById("t1");//通过标签ID获得网页中的标签对象
返回的是一个标签对象的集合,是一个集合对象,即使只有一个标签,也是集合
var divobjs = document.getElementsByTagName("div")
var divobjs = document.getElementsByClassName("box");
与上面方式相同
对象名.属性名
tobj1.id = "t3";
//将id属性改为t3
对象名.innerText或对象名.innerHTML
innerText 只获取标签体中的文本内容
innerHTML 可以获得标签内所有的内容(包括子标签和文本)
对象名.style.标签样式
divobj1.style.background = "red";
setTimeout(“函数”,”时间”)
开启定时,设定在指定的时间后调用指定的函数,只调用一次,时间以毫秒为单位
clearTimeout()取消setTimeout()
setInterval(“函数”,”时间”)每隔指定时间重复调用
clearInterval()取消setInterval()