一、JavaScript能做什么?
- JavaScript(以下简称JS)是一种轻量级的编程语言,被设计用来向 HTML 页面增加交互性,常用来为网页添加各式各样的动态功能,它不需要进行编译,直接嵌入在HTML页面中(java文件不能直接执行,得先编译成class才能执行)
- 使用方式:内嵌式、外链式
- JS能做什么?:
(1)对事件的反应(鼠标点按钮:单击、双击;)
(2)验证输入(例如输入用户名、密码,验证长度不能大于10)
(3)改变HTML标签的内容或者样式
(4)直接输出HTML内容
二、JavaScript用法
- 放置位置:理论上可以放置在html文件中的任意位置。建议统一放置在<head></head>中,不要占用body中的位置,免得html和js混杂在一起,后期不好维护。
- 可以写多个<script></script>
- 注释:单行注释 // 多行 /* */
- 每行代码用分号分隔,一行可以写多条语句
- 页面简单的代码查错,可以用打印数据的方式:
JavaScript 可以通过不同的方式来输出数据:
(1)使用 alert() 弹出警告框。
(2)使用 console.log() 写入到浏览器的控制台。
(3)使用 document.write() 方法将内容写到 HTML 文档中。
(4)使用 innerHTML 写入到 HTML 元素。
三、基础知识
(一)数据类型
(二)变量
使用var命令声明变量,因为JavaScript是一种弱类型语言,所以在声明变量时,不需要指定变量的类型,变量的类型将根据变量的赋值来确定,其语法格式如下所示:
var a =12;
var b = "12";
注: 变量的命名必须遵循命名规则,变量名可以由字母、下划线(_)、美元符号($),甚至中文组成,但中文命名的方式不建议使用,中间可以是数字、字母或下划线,但是不能有空格、加号、减号等符号,不能使用JavaScript的关键字。è可以和java一样:字母、数字、_;数字不能开头
(三)关键字
关键字不可以用作函数名、对象名
(四)运算符
JavaScript中的运算符主要包括算术运算符、比较运算符、赋值运算符、逻辑运算符和条件运算符5种,具体介绍如下
|
|
算术运算符 | +、-、*、/、%、++、-- |
赋值运算符 | =、+=、-=、*=、/=、%= |
比较运算符 | ==、!=、>、<、<=、>=、 ===(绝对等于(值和类型均相等)) !==(不绝对等于(值和类型有一个不相等,或两个都不相等)) |
逻辑运算符 | &&、||、! |
条件运算符 | a==b?a:b |
|
|
(五)对象
(1) JavaScript 中的所有事物都是对象:字符串、数值、数组、函数...
此外,JavaScript 允许自定义对象。和java的类类似,
比如人是一个对象,包含属性身高、体重、肤色;包括方法:吃饭、睡觉
var person={
height:"65kg",//属性
weight:165.00,
sex:true,
eat:function(){//方法
alert("我吃饭了");
},
sleep:function(n){//n:睡了几个小时
alert("睡了:"+n+"小时");
}
};
(2) JavaScript 提供多个内建对象,比如 String、Date、Array 等等。 对象只是带有属性和方法的特殊数据类型。
(3)Date对象:
Date对象是一个有关日期和时间的对象。它具有动态性,必须使用new关键字创建一个实例,
Date对象没有提供直接访问的属性,只有获取和设置日期的方法:
(六)函数
在JavaScript中,定义函数是通过function语句实现的。其语法格式如下:
eat:function(){//方法
alert("我吃饭了");
},
sleep:function(n){//n:睡了几个小时
alert("睡了:"+n+"小时");
}
functionName是必选项,用于指定函数名,在同一个页面中,函数名必须是唯一的,并且区分大小写;
parameter1,parameter2,…是可选项,代表参数列表,当使用多个参数时,参数间使用逗号进行分隔,一个函数最多可以有255个参数;
statements是必选项,代表用于实现函数功能的语句;
return expression是可选项,用于返回函数值,
expression为任意表达式、变量或常量。
(七)语句
(八)事件处理
(九)其他对象
(十)类型转换
(十一)JSON
代码:
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>无标题文档</title>
<link type="text/css" rel="stylesheet" href="myCss.css" /> <!--外链式 css引入时link是单标签的 成对的-->
<script type="text/javascript" src="myJs.js"></script> <!--内嵌式-->
<script type="text/javascript"> //String对象,和java的String类的方法几乎是一样的
var a = "I am a china";
alert(a.length);//长度属性 算上空格
alert(a.indexOf("c",4));//查找c字符的位置,从0开始
alert(a.lastIndexOf("c",4));//从后往前查c的位置,20超过字符串的长度,不报错
alert(a.substr(2,3));//截取字符串,从2位置开始截取,截取3个字符
alert(a.substring(2,3));//从2开始截取,截取到第三个位置,不包含第三个位置的字符
var b = a.split(" ");//以空格为分隔符,拆成数组
alert(b[1]);//数组应该是这样的:["I","am","a,"china"] /*//自定义一个对象
var person={
height:"65kg",//属性
weight:165.00,
sex:true,
eat:function(){//方法
alert("我吃饭了");
},
sleep:function(n){//n:睡了几个小时
alert("睡了:"+n+"小时");
}
};
alert("身高:"+person.height);//对象名.属性
alert("体重:"+person.weight);
person.eat();//对象名字.方法或叫函数
person.sleep("18个");*/
/*//字符串+连接符
var a =12;
var b = "12";
var c = a+b;
alert(c);
var d = a+parseInt(b);//parseFloat只有这2个
alert(d);*/
/*var a =12;
var b = "12";
alert("==:"+(a==b));//只比较值是否相等
alert(a===b);//值和类型都相等
*/
/*var a = 1;
var b = 1.0;
b="haha";//js里面可以赋值为不同类型的数据
alert(typeof(b));//typeof是查看b的数据类型
b=true;
alert(typeof(b));//typeof是查看b的数据类型
var c;
alert(typeof(c));//undefined
var d=[];
alert(typeof(d));//object对象类型
*/ //几种打印方式
console.log("我是console打印");
document.write("<h1>写入页面</h1>");
document.getElementById("msg").innerHTML="您用户名不对";
//alert("内嵌式引入js");
/*
多行注释
*/
</script></head>
<body>
<p id="msg">
<!--在这个地方换内容 --> </p>
</body>
</html>
myJs.js:
// JavaScript Document
alert("我是js文件里的弹出");