什么是JavaScript?
JavaScript是一门世界上最流行的脚本语言
1.快速入门
(1)引入JavaScript
内部标签
<script>
//...
</script>
外部引入
<script src="js/nod.js" type="text/javascript" charset="utf-8"></script>
(2)浏览器调试
控制台输出
Console.log(123);//打印变量在控制台
断点调试
2.语法
(1)基本数据类型
Java中有八种基本数据类型
整型:byte short int long
浮点型:float double
布尔型:boolean
字符型:char
js原始数据类型
number:数字类型,包含整数,小数,NaN(not a number)
string:字符串和字符类型
boolean:布尔型 true和false
null:空类型
undefined:未定义,如果一个变量没有初始化值,默认就是undefined
(2)变量
js是一门弱类型语言,定义变量时,不需要规定其类型数据。
var i=“abc”;//使用var定义变量
alert(typeof i);//typeof运算符用于获取变量的数据类型
(3)自动类型转换
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title></title>
<script type="text/javascript">
//这个+号起的是拼接符的作用
var s="12";
alert(s+10);//1210
//=+字符串转换数字时,看字符串字面上是个数字不,如果是数字,就把他转换成数字。
var s1=+"10";
alert(s1+10);//20
//当字符串这个字面上的值,转不了数字时,就会转换成NaN
var aa=+"a100";
//NaN:not a Number 不是数字的数字
//NaN进行数学运算时结果还是NaN
alert(aa*200);
//* 乘号两端想要一个数字,但是bb不是数字类型 ,所以* 就会尝试着去转换,字面上能转换成数字就转了,转不了,转NaN
var s2="20";
alert(s2*10);//200
//布尔类型转换为数字时 true转为1 false转为0
var b=true;
b=false;
alert(b*10)
//if括号里的类型想要一个布尔类型,给定的值与他期望的不一样,就会发生类型转换
//字符串转换为布尔类型 空串转换为false 非空串转换为true
//数字转换为布尔类型 0转换为false 非0转换为true
var str="qasda";
if(str){
}else{
}
</script>
</head>
<body>
</body>
</html>
注意:自动类型转换时“=+”号的使用
3.函数
js中的函数,就类似于Java中的方法,可以封装一段功能逻辑,以实现重复调用。
(1)实现方式
方式1
//不推荐使用,
var fun=new Function("a,b","alert(a+b)");
fun(23,30);/* 调用 */
方式2
var test=function(a,b){
/* 函数体 */
alert(a+b);
}
test(20,30);
方式3
function test2(a,b){
/* 函数体 */
alert(a+b);
}
test2(20,40);
(2)函数中的arguments
其实Javascript并没有重载函数的功能,但是Arguments对象能够模拟重载。Javascrip中每个函数都会有一个Arguments对象实例arguments,它引用着函数的实参,可以用数组下标的方式"[]"引用arguments的元素。arguments.length为函数实参个数,arguments.callee引用函数自身。
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title></title>
<script type="text/javascript">
function add(){
//arguments本质上是一个数组,可以把传过来的所有实参,放到这个数组中
return arguments[0]+arguments[1]+arguments[2];
}
alert(add(20,30,40));
</script>
</head>
<body>
</body>
</html>
(3)使用
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title></title>
<script type="text/javascript">
function test(a,b,c){
var sum=a+b+c;
return sum;
}
/* js中调用函数时,如果函数有形参 传递参数时可以多传 但是还是按照函数的形参来计算 */
var sum1=test(10,20,30,40);
alert(sum1);
</script>
</head>
<body>
</body>
</html>
(4)void运算符
a 标签有两个作用,第一个作用可以点击,第二个作用可以跳转页面,,有的时候,我只想保留 a 标签的可以点击作用,但是不想让他跳转页面,我们可以使用# 可以实现,但是不灵活。我们可以使用void 来说实现这个功能。
<a href="javascript:void(0)">可以点击不跳转页面</a>
<a href="javascript:void(show())">拦截跳转页面还可以执行函数</a>
<a href="javascript:show()">JS内联的写法,可以调用函数</a>
4.js中的内置对象
(1)String对象
①定义方式
String str= new String("adscs");//方式1
var str="123";//方式2
②属性
length:获取字符串的长度
③方法
charAt() 返回在指定位置的字符。
例子:var v="abcd";
var a=v.charAt(2);
concat() 连接字符串。
例子:var v="ab"; var a="cd";
var z=v.concat(a);
indexOf() 根据字符检索此符在字符串中的索引。
例子:var v="abcde";
var z=v.indexOf("c");
lastIndexOf() 从后向前搜索字符串。
substring() 提取字符串中两个指定的索引号之间的字符。
toLowerCase() 把字符串转换为小写。
toUpperCase() 把字符串转换为大写。
replace() 替换字符串。
例子: var v="abceaaaa";
var z=v.replace("a","h"); 参1:被替换的字符/或字符串 参数2:替换成哪个字符/或字符串
split() 把字符串分割为字符串数组。
例子: var v="a#b#c#d";
var z=v.split("#");
trim():去除字符串两端的空格
(2)Number对象
①定义方式
var num=new Number(555.66);//方式1
var num1=Number(5566);//方式2
②方法
toString() 把数字类型转成字符串类型
toFixed() 把数字转换为字符串,结果的小数点后有指定位数的数字。
toPrecision() 把数字格式化为指定的长度。也就是小数后面保留几位
(3)Date对象
①创建方式
var date=new Date();
②案例演示
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title></title>
<script src="js/moment.js" type="text/javascript" charset="utf-8"></script>
<script type="text/javascript">
var date=new Date();
var time=date.getTime()//获取从1970-01-01 00:00:00到当前的毫秒值
alert(time);
var localtime=time.toLocaleString()//将Date对象转换为字符串
alert(localtime);
var day=date.getDate();//从date对象返回一个月中的某一天
alert(day);
alert(date.toDateString());//把Date对象的时间部分转换为字符串 Thu Mar 19 2020
alert(date.toTimeString());//把Date对象的日期部分转换为字符串 10:31:14 GMT+0800 (中国标准时间)
//我们也可以使用第三方处理日期的js moment.js
var datastr=moment().format("YYYY-MM-DD HH:mm:ss");//把当前日期 按照指定格式去格式化日期
alert(datastr);//2020-03-19 11:04:58
var time=new Date().getTime();
/* 把指定毫秒值 和格式化成日期字符串 */
var datastr2=moment(time).format("YYYY-MM-DD HH:mm:ss")
alert(datastr2)
</script>
</head>
<body>
</body>
</html>