JavaScript基础知识
1.1基本概念
为什么需要有JavaScript(JS有什么作用)
HTML负责呈现什么内容,CSS负责以何种方式来呈现
HTML+CSS:实现了静态页面
实际上,我们更多的页面是动态的,比如12306:
时间也应该是动态显示的。
还有验证码、注册页面的数据验证……
那么怎么才能让页面动起来呢?
答案就是JavaScript!
<html>
<head lang="en">
<meta charset="UTF-8">
<title></title>
<style type="text/css">
p{
color:red;
}
</style>
</head>
<body>
<p id="time">今天是……</p>
</body>
<script>
var p1 = document.getElementById("time");
p1.innerHTML = new Date().toString();
</script>
</html>
很明显,这个内容不是HTML提供的,而是由脚本语言JS动态生成的。所以JS是实现动态页面的,即页面的行为。
<html>
<head lang="en">
<meta charset="UTF-8">
<title></title>
<style>
#div1{
height: 100px;
width: 100px;
background: skyblue;
margin: 0 auto;
}
</style>
</head>
<body>
<div id="div1" ></div>
</body>
<script language="javascript">
var timer = setInterval("zoom()",50);
var div = document.getElementById("div1");
var timer;
var width = 100;
function zoom(){
if(width >= 600){
clearTimeout(timer);
}
width = width + 5;
div.style.width = width + "px";
}
</script>
</html>
这个案例是用定时器动态去改变元素的宽度,从而实现动态的效果。
怎么用?
两种方式:
(1)内部引用:使用<script>标签,代码直接写在标签中。
(2)外部引用:使用<script>标签引用,例如<script src=”E103-01-03.js”></script>
JS是一种解释性语言
计算机语言分为编译型和解释型
程序员使用高级语言编制程序,但是程序最终由计算机去执行,但是计算机只能执行机器语言(即二进制代码),那么这个过程就必然有一个从高级语言到机器语言的“翻译”过程。
有两种“翻译”方式:
(1)编译:将代码整体翻译成机器代码,如果有错误则停止翻译,全部成功翻译完才能执行;
(2)解释:将代码翻译一条马上执行一条,如果遇到错误则停止。
JavaScript的注释方式:
1.//单行注释
2./*注释内容*/多行注释
计算机语言分为两种:编译型语言:JAVA、C++、C、PHP...
解释性语言:JavaScript、CSS...
程序设计基础
2.1数据类型
计算机程序就是去处理现实中各种数据
数据的几个属性:名称、值、类型
名称是月销量,值是47,数值
名称是大小,值是“190×100mm”,字符串
是否包邮:是
名称是是否包邮,值是“是”,布尔类型
名字:“曹鹏飞”字符串 string
身高:165 数值 number
体重:65 数值 number
性别:男 字符串 string
是否单身:是 布尔 boolean
alert() 警告提示框(打印)
typeof() 数据的类型
为什么要有数据类型?
生活中是存在不同的数据类型的,计算机要解决生活问题,那么他就和生活中的数据类型产生映射,所以有了数据类型。
数值类型的表示形式:
十进制:25,2.56;
八进制:023(19)
十六进制:0x23(35)
科学计数法:3e2(3×102),3.5e-2(3.5×10-2)
2.2变量
为什么要有变量?
因为生活中一些数据不是一成不变的,它的值会改变,所以JS里面有了变量与之对应。
变量:
var name = "曹鹏飞";
Var variable的缩写变量的意思。声明一个变量。
变量名
Name 变量名
命名规则:
1、可以由字母、数字、下划线和$组成
2、不能用数字开头,因为和八进制与十六进制会产生冲突
3、关键字不能使用(var,if)
Var 1name = “曹鹏飞”;
命名的原则:见名思义
规范:
(1)尽量使用英文单词或组合,或者专业名词
weight/color
fileName(驼峰命名法)
(2)尽量不要使用拼音
变量的值:
变量的类型是由变量的值决定的
系统会为不同的类型分配不同的大小来存储数据。
如果是布尔类型就分配一个字节大小来存储
如果是数字和字符串,那么根据它的大小和长度来分配字节数存储。
JS是弱类型的语言,所有的类型的变量都用var来声明。
JS是动态类型的语言,变量的类型会根据值的变化而变化,不会出错。
什么是变量?
变量就是一个内存单元。
用本质来解释weight = weight - 5;
var weight = 65;
weight = weight - 5;
把名字为weight的内存单元的值65拿出来,之后和5做减法运算,然后把得到的结果再放回到名字为weight的内存单元中。
JS语言特点:
更加高级,不严谨。
变量不声明就可以使用。
使用严谨的格式,就必须先定义变量才能才能使用。
"use strict";
weight = 65;
alert(weight);
Name这个名字是特殊的,使用name来给变量其名字是,不会报错。
var weight1 = "中等";
weight1= 47;
alert(weight1);
此处输出的不是47,而是“中等”,原因是两个变量拼写错误,而且不会报错。
"use strict";
var weight1 = "中等";
weightl = 65;
alert(weight1);
如果使用严格模式,明显可以看到第二个变量拼写错误。
2.2对象类型
对象在js当中对应的是object
定义一个狗的对象
var dog = {
name:"藏藏",
type:"藏獒",
color:"花色",
sex:"雄",
age:3,
marry:false
};
狗:
名字:“藏藏”
品种:“藏獒”
颜色:“花色”
性别:“公的”
年龄:3
行为:走,跑,吃,睡觉。
是否婚配:否
使用new Object()定义一个对象类型的变量
var dog = new Object();
dog.name = "小七";
dog.age = 3;
dog.marry = false;
为什么要有对象?
和为什么有数据类型是一样的,就是生活中处处是对象,所以JS中有这种数据类型。
如何使用对象里面的属性?
使用对象名+.+对象属性名
alert(typeof dog.name);
思考:对象中的属性中能不能有对象类型?
答案是可以的,下面给出一个案例
var bir = { month:8, day:29 }; var friend = { name:"大凌", sex:"男", birthday:bir, phone:"152********" }; alert(friend.phone);