一.javascript(简称js) 简言
1.1 网页web开发的标准
a.HTML
是一种标记语言,用来结构化我们的网页内容并赋予内容含义,制作静态页面。
b.CSS
是一种样式规则语言,可将样式应用于 HTML 内容,美化布局效果。
c.javascript是一种脚本语言,可以用来创建动态更新的内容,控制多媒体,制作图像动画等,最主要的是js中实现客户端的交互。
1.2 javascript概述
3.JS是一种基于对象(Object)和事件驱动(Event Driven)并具有安全性能的脚本语言。
1.3 JavaScript历史
JavaScript 最初被称为 LiveScript,由 Netscape(Netscape Communications Corporation, 网 景通信公司)公司的布兰登·艾奇(Brendan Eich)在 1995 年开发,仅仅只用了10天左右。 在 Netscape 与 Sun(一家互联网公司,全称为“Sun Microsystems”,现已被甲骨文公司收购) 合作之后将其更名为了 JavaScript。
1.4 JavaScript能做什么
使用JavaScript实现表单验证,轮播图
使用JavaScript制作网页广告特效
使用JavaSctipt制作弹出窗口特效
使用JavaScript实现时钟特效
使用JavaScript实现级联显示功能
使用JavaScript+CSS实现CSS样式特效
使用JavaScript动态创建页面元素
使用JavaScript实现游戏
使用JavaScript实现地理定位
使用JavaScript实现人脸识别
。。。。。。
-
JavaScript主要用于HTML的页面,嵌入在HTML的源码中。
-
JS是弱类型语言,没有类型声明,它的变量不必具有一个明确的类型。
1.5 javscript的组成
组成部分 | 作用 |
---|---|
ECMAScript | 构成了JS的核心语法 |
BOM | Browser Object Model【浏览器对象模型】,用来操作浏览器上的对象 |
DOM | Document Object Model【文档对象模型】,用来操作网页中的元素 |
BOM
DOM
二.变量与数据类型
1.1变量
Js 是一种弱类型或者说动态语言,不用提前声明变量的类型,变量的类型会自动判断。即使赋值之后,变量的类型根据重新赋值的数据类型同样进行改变。
var name//声明变量name
name="哈哈"//给name赋值为"哈哈"
var age //声明变量age
age=19//给age赋值为"哈哈"
还可同时声明多个变量
var a = 10, b = 20, c = 30;//声明多个变量
1.2 数据类型
字符串:string
数值类型:number(整数,小数)
布尔值类型:boolean (true or false)
空值:null
未定义:undefined
var a='hahahha'//字符串定义
var b= 90//整数定义
var c=9.9//小数定义
var d=1+true//在运算中,true代表1
var e=1+false// false 代表0
undefined 指未被定义的数据类型
·其它类型
数组
// 利用对象创建数组
var arr = new Array();
// 利用 [] 快捷创建数组
var arr = [];
var arr = [1, 2, 3, 'haa', True];
// 访问数组元素
var arr1 = ['张三', '李四', '王五', '淑芬'];
// 索引号: 0 1 2 3
console.log(arr1); // 输出整个数组所有元素
console.log(arr1[0]); // 使用 数组名[索引号] 获取数组数组内指定元素的值
//遍历数组
arr= ['a', 'b', 'c', 'd'];
for (var i = 0; i <= 3; i++) {
console.log(arr[i]);
}
案例:
//冒泡排序
var arr = [5, 4, 3, 2, 1];
for (var i = 0; i < arr.length - 1; i++) { // 外层循环
for (var j = 0; j <= arr.length - i - 1; j++) {
if (arr[j] > arr[j + 1]) {
var temp = arr[j];
arr[j] = arr[j + 1];
arr[j + 1] = temp;
}
}
}
console.log(arr);
对象
1.3 数据类型转换
1.转换为字符串
var num = 1;
num.toString(); //转换为字符串
2.转换为数字型
// 转换为整型
parseInt(num);
parseInt('3.14'); // 取整为3
parseInt('90px'); // 去掉单位(只取int,遇到字符串自动中断)
parseInt('rem120px') // 字符串转换后变为 NaN
parseInt(undefined) // undefined 转换后变为 NaN
parseInt(null) // 转换后为0
parseInt(true) // 布尔型转换后变为 1 或 0
// 转换为浮点型
parseFloat(num);
parseFloat(10); // 输出10
// 强制转换
Number(num);
3.转换为布尔值类型
//代表空、否定的值都会被转换为 false,
其余值都会被转换为 true
Boolen('dfa'); // 返回 True
Boolean(0); // 返回 False
4.typeof() 查看数据类型
1.4运算符
与Javabase大致相同
算术运算符
+ - * / %
/ 只做运算,不做取整
10/3; //3.33333335
比较运算符
<
>
>=
<=
== // 不会比较数据类型 ,只比较内容
=== // 会比较数据类型
!=
!== // 全不等(包括数据类型)
逻辑运算符
&& 并且
|| 或者
! 取反
赋值运算符
+=
—=
/=
*=
三. 基本使用
3.1 JS 嵌入方式
在 HTML 中使用 JS 可以用以下几种方式实现:
-
行内式
-
内嵌式
-
外部引用 js 文件
//行内式
<input type="button" value="Click Me!" onclick="alert('Hellow World')">
//内嵌式
<script>
alert('Hello World');
</script>
外部JS文件
<script src="my.js"></script>
3.2 JS 输入输出语句
alert 消息弹出框
prompt 弹出输入框
confirm 消息确认框
console.log() 控制台输出
document.write(""); 页面输出
3.3 JS事件
onclick // 鼠标点击左键
ondbclick // 鼠标双击
oncontextmenu // 鼠标点击右键
mousedown // 鼠标按键被按下
mouseup // 松开鼠标按键
onselect // 文本被选中
oncopy // 元素内容被复制
onmouseenter // 鼠标移动到事件监听的元素内(不区分子元素)
onmouseover // 鼠标移动到有事件监听的元素或它的子元素内
onmouseleave // 鼠标离开元素外(不区分子元素)
onmouseout // 鼠标离开元素,或它的子元素外
onfocus // 获得鼠标焦点(点击input输入框)
onblur // 失去鼠标焦点(进入其他input输入框)
onmousemove // 鼠标移动
onmouseup // 鼠标弹起
onmousedown // 鼠标按下
注:
js区分大小写
js语句结尾尽量写分号
大部分语法与java相同
js中注释与java相同
四. 逻辑控制语句
1.选择结构
单分支结构
if (条件表达式) {
JavaScript语句--执行语句
}
其它代码
双向分支
if(条件)
{
//JavaScript代码;
}
else
{
//JavaScript代码;
}
其它代码
多分支结构
if (条件表达式1) {
// 执行语句1 JavaScript语句
} else if (条件表达式2) {
// 执行语句2 JavaScript语句
} else {
// 执行语句3 JavaScript语句
}
// 其他代码
2.三元运算符
如果条件表达式结果为真,则返回表达式1的值,否则返回表达式2的值
条件表达式 ? 表达式1 : 表达式2
//如果小于10,则在数字前边补0
var time = 6
console.log(time<10 ? '0' + time : time);//返回0time
3.switch语句
switch(表达式){
case value1:
// 执行语句1
break;
case value2:
// 执行语句2
break;
default:
// 如果无条件满足,最终执行语句
}
4.循环结构
单循环
for(初始化变量; 条件表达式; 操作表达式){
// 循环体
}
// 初始化变量: 用 var 声明的一个普通变量,通常用于计数器使用
// 条件表达式: 用来判断每一次循环是否继续执行,是终止的条件
// 操作表达式: 是每次循环最后执行的代码,经常用于计数器变量的更新(递增或递减)
嵌套循环
for (外层循环初始化变量; 外层循环表条件达式; 外层操作表达式){
for(内层循环初始化变量; 内层循环表条件达式; 内层操作表达式){
// 循环代码
}
}
while循环
while(条件表达式){
// 循环体
}
do while 循环
do {
// 循环体
} while(条件表达式)
注:
-
break 关键字用于直接跳出循环
-
continue 关键字用于立即跳出本次循环,进入下一次循环
五.函数
1.声明函数
// 声明函数
function 函数名(){
// 函数内部代码,又称为函数体
}
// 调用函数
函数名();
2.作用域
全局变量:
-
变量在
<script>
标签之内,或者是一个单独js文件 -
如果在函数内部没有声明的变量也属于全局变量(即在函数内部可以使用外部的变量)
-
浏览器关闭才会销毁
局部变量:
-
变量声明在函数内部
-
函数的形参也可以看做是局部变量
-
函数执行完毕就会销毁
链式作用域:
-
函数内部可以调用父集中的变量
兄弟们,接下来上硬货
1.打印三角形
//打印三角形
<body style="text-align:center;">
<script type="text/javascript">
var k=10;
for(var i=1;i<=k;i++)
{
for(var j=0;j<i;j++)
{
document.write("* ");
}
document.write("<br/>");
}
</script>
</body>
2.打印九九乘法表
//打印九九乘法表
for(var i = 1;i<=9;i++){//行数
//每一行打印的星星的个数
for(var j = 1;j<=i;j++){
document.write(j +" * "+i +" = " + (i*j)+" ");
}
document.write("<br/>");
}
别急,还有表格版(两种哦)
//九九乘法表表格版
<table id="mytable" border="1" cellspacing="0" cellpadding="10">
</table>
<script>
var mytable=document.getElementById('mytable');
for(var i=1;i<=9;i++){
var tr=document.createElement('tr');
for(var j=1;j<=i;j++){
var td =document.createElement('td');
td.innerText = i + 'x' + j + '=' + (i * j);
tr.appendChild(td);
}
mytable.appendChild(tr);
}
</script>
<script>
//九九乘法表表格版
document.write('<table border="1" cellspacing="10" cellpadding="10">')
for(var i=1;i<=9;i++){
document.write("<tr>");//循环行
for(var j=1;j<=i;j++){
document.write("<td>");//循环单元格
document.write( i + "x" + j + "=" + i * j+"  ");
document.write("</td>");
}
document.write("<tr>");
}
document.write("</table>");
</script>
JavaScript入门就到这啦 ,祝大家在梦想之路越走越顺,越走越远!!