1.定义及组成
1.JavaScript是什么:
- JavaScript是世界上最流行的语言之一,是一种运行在客户端的脚本语言( Script是脚本的意思)
- 脚本语言∶不需要编译,运行过程中由js解释器(js 引擎)逐行来进行解释并执行
- 现在也可以基于Node.js技术进行服务器端编程
2.浏览器执行JS简介:
浏览器分成两部分︰渲染引擎和JS引擎
- 渲染引擎∶用来解析HTML与CSS,俗称内核,比如chrome浏览器blink,老版本的webkit
- JS引擎︰也称为JS解释器。用来读取网页中的JavaScript代码,对其处理后运行,比如chrome浏览器的V8
浏览器本身并不会执行JS代码,而是通过内置JavaScript引擎(解释器)来执行S代码。JS引擎执行代码时逐行解释每一句源码(转换为机器语言),然后由计算机去执行,所以JavaScript语言归为脚本语言,会逐行解释执行。
3.JS的组成:
- JavaScript语法:ECMAScript
- 页面文档对象模型:DOM
- 浏览器对象模型:BOM
3.1ECMAScript:
ECMAScript是由ECMA国际(原欧洲计算机制造商协会)进行标准化的一门编程语言,这种语言在万维网上应用广泛,它往往被称为JavaScript或JScript,但实际上后两者是ECMAScript语言的实现和扩展。
ECMAScript : ECMAScript规定了JS的编程语法和基础核心知识,是所有浏览器厂商共同遵守的一套JS语法工业标准。
3.2DOM——文档对象模型:
文档对象模型(Document Object Model,简称DOM),是W3C组织推荐的处理可扩展标记语言的标准编程接口。通过DOM提供的接口可以对页面上的各种元素进行操作(大小、位置、颜色等)。
3.3BOM——浏览器对象模型:
BOM(Browser Object Model,简称BOM)是指浏览器对象模型,它提供了独立于内容的、可以与浏览器窗口进行互动的对象结构。通过BOM可以操作浏览器窗口,比如弹出框、控制浏览器跳转、获取分辨率等。
2. 书写位置及输入输出语句
1.书写位置,为行内、内嵌和外部。
-
行内式JS:
<input type="button" value="点我试试" onclick="alert ( ' Hello world')"/>
可以将单行或少量JS代码写在HTML标签的事件属性中(以on开头的属性),如: onclick
注意单双引号的使用∶在HTML中我们推荐使用双引号,JS中我们推荐使用单引号 -
内嵌JS(最常用):
<script> alert ( 'Hello world~ ! ' ); </ script>
-
外部JS文件:
<script src="my.js"><l script>
引用外部JS文件的script标签中间不可以写代码
适合于JS代码量比较大的情况
2.JavaScript输入输出语句:
- alert(msg) 浏览器弹出警示框
- console.log(msg) 浏览器控制台打印输出信息
- prompt(info) 浏览器弹出输入框,用户可以输入
3.变量和数据类型
1.什么是变量:
变量是用于存放数据的容器。我们通过变量名获取数据,甚至数据可以修改。
本质:变量是程序在内存中申请的一块用来存放数据的空间。
2.变量的使用:
变量在使用时分为两步:1.声明变量2.赋值
声明变量: var age;
var是一个JS关键字,用来声明变量( variable变量的意思)。使用该关键字声明变量后,计算机会自动为变量分配内存空间不需要程序员管。
3.更新变量:
一个变量被重新复赋值后,它原有的值就会被覆盖,变量值将以最后一次赋的值为准。
var age = 18;
age = 81;/l/最后的结果就是81因为18被覆盖掉了
4.声明变量特殊情况:
var age ; console.log (age); 只声明不赋值 undefined
console.log(age) 不声明不赋值直接使用 报错
age = 10; console.log (age); 不声明只赋值 10
5.变量命名规范:
- 由字母(A-Za-z)、数字(0-9)、下划线()、美元符号($ )组成,如:usrAge, num01,name
- 严格区分大小写。var app;和var App;是两个变量
- 不能以数字开头。18age是错误的
- 不能是关键字、保留字。例如: var、for、while
- 变量名必须有意义。MMD BBDnl →age
- 遵守驼峰命名法。首字母小写,后面单词的首字母需要大myFirstName
6.变量的数据类型:
变量是用来存储值的所在处,它们有名字和数据类型。变量的数据类型决定了如何将代表这些值的位存储到计算机的内存中。JavaScript是一种弱类型或者说动态语言。这意味着不用提前声明变量的类型,在程序运行过程中,类型会被自动确定。
在代码运行时,变量的数据类型是由JS引擎根据=右边变量值的数据类型来判断的,运行完毕之后,变量就确定了数据类型。
7.简单数据类型(基本数据类型):
- Number : 数字型,包含整型值和浮点型值,如21、0.21 默认值:0
- Boolean : 布尔值类型,如true . false,等价于1和0 默认值:false
- String : 字符串类型,字符串都带引号 默认值:""
- Undefined : var a;声明了变量a但是没有给值,此时a = undefined
- 默认值:undefined
- Null : var a = null;声明了变量a 为空值 默认值:null
注意: 1.JavaScript中数值的最大和最小值:
最大值:alert (Number.MAx_VALUE);
1.7976931348623157e+308
最小值:alert (Number.MIN_VALUE) ;
5e-324
2.数字型三个特殊值:
- Infinity :代表无穷大,大于任何数值
- -lInfinity :代表无穷小,小于任何数值
- NaN:Not a number,代表一个非数值
3.isNaN():
用来判断一个变量是否为非数字的类型,返回true或者false
4.typeof:用于测试数据类型
4. 字面量和类型转换
1.字面量:
字面量是在源代码中一个固定值的表示法,通俗来说,就是字面量表示如何表达这个值。
数字字面量:8,9,10
字符串字面量:'黑马程序员',"大前端"
布尔字面量:true , false
2.数据类型转换:
注意:使用表单、prompt获取过来的数据默认是字符串类型的,此时就不能直接简单的进行加法运算,而需要转换变量的数据类型。
2.1转换为字符串:
- toString():
var num= 1; alert(num.toString());
- String()强制转换:
var num = 1; alert(String(num));
- 加号拼接字符串,和字符串拼接的结果都是字符串:
var num = 1; alert(num+"我是字符串");
2.2转换为数字型(重点):
-
parselnt(string)函数:将string类型转成整数数值型
parselnt('78')
-
parseFloat(string)函数:将string类型转成浮点数数值型
parseFloat('78.21')
-
Number()强制转换函数:将string类型转换为数值型
Number('12')
-
js隐式转换(- * / ):利用算术运算隐式转换为数值型
'12'-0
2.3转换为布尔型:
Boolean()函数
Boolean('true');
●代表空、否定的值会被转换为false ,如""、0、NaN、null,undefined
●其余值都会被转换为true
5.创建数组、函数
1.利用new创建数组:
var数组名= new Array () ;
var arr = new Array (); //创建一个新的空数组
2.利用数组字面量创建数组:
//1.使用数组字面量方式创建空的数组
var数组名=[];
//2.使用数组字面量方式创建带初始值的数组
var数组名=〔'小白','小黑','大黄·,瑞奇'];
3.函数:
function 函数名(参数){}
4.arguments的使用:
当我们不确定有多少个参数传递的时候,可以用arguments来获取。
在JavaScript中,arguments实际上它是当前函数的一个内置对象。
所有函数都内置了一个arguments对象,arguments对象中存储了传递的所有实参.
注意:arguments展示形式是一个伪数组,因此可以进行遍历。伪数组具有以下特点︰
- 具有length属性
- 按索引方式储存数据
- 不具有数组的push , pop等方法
6.对象
1.什么是对象?
在JavaScript中,对象是一组无序的相关属性和方法的集合,所有的事物都是对象,例如字符串、数值、数组、函数等。
对象是由属性和方法组成的。
●属性:事物的特征,在对象中用属性来表示(常用名词)
●方法∶事物的行为,在对象中用方法来表示(常用动词)
2.创建对象的三种方式
在JavaScript中,现阶段我们可以采用三种方式创建对象( object ) :
- 利用字面量创建对象
- 利用new Object创建对象
-
利用构造函数创建对象
//1.var obj = { uname:‘张三疯',age: 18, sex:‘男', sayHi : function() { console.log( " hi~'); } } //2.console.log(obj.uname); console.log(obj[ 'age']);
2.利用字面量创建对象
对象的调用
对象里面的属性调用:对象.属性名,这个小点.就理解为“的”
对象里面属性的另一种调用方式:对象[‘属性名’ ],注意方括号里面的属性必须加引号,我们后面会用
对象里面的方法调用:对象.方法名0,注意这个方法名字后面一定加括号
console.log (star;name)//调用名字属性
console.log (star[ 'name'])//调用名字属性
star.sayHi();//调用sayHi方法,注意,一定不要忘记带后面的括号
JavaScript中的对象分为3种:自定义对象、内置对象、浏览器对象
内置对象就是指JS语言自带的一些对象,这些对象供开发者使用,并提供了一些常用的或是最基本而必要的功能(属性和方法)
JavaScript提供了多个内置对象:Math、 Date . Array、string等
3.Math概述
Math对象不是构造函数,它具有数学常数和函数的属性和方法。跟数学相关的运算(求绝对值,取整、最大值等)可以使用Math中的成员。
Math.PI
//圆周率
Math.floor ()
l/向下取整
Math.ceil ()
//向上取整
Math.round ()
//四舍五入版就近取整注意-3.5结果是-3
Math.abs ()
//绝对值
Math.max () /Math.min() l/求最大和最小值
4.Date()方法的使用
1.获取当前时间必须实例化
var now = new Date () ;console.log (now) ;
2.简单的写法(最常用的写法)
var date1 = +new Date(l; ll +new Date()返回的就是总的毫秒数console.log(date1);
5.事件
- onClick 点击事件
- onMouseOver 鼠标经过
- onMouseOut 鼠标移出
- onChange 文本内容改变事件
- onSelect 文本框选中
- onFocus 光标聚集
- onBlur 移开光标
6.dom
获取节点需要用到element对象,成员方法主要有:
- getElementByld:id方式(获取元素唯一)
- getElementsByClassName
- getElementsByName
- getElementsByTagName
- getElementsByTagNameNS
dom常用方法
dom可以调用属性方法来对文档树进行增删改查,dom常用方法如下:
- appendChild()
- removeChild()
- replaceChild()
- insertBefore()
- createAttribute()
- createElement()
- createTextNode()
- getAttribute() //通过名称获取属性的值。
setAttribute()方法:
document.getElementsByTagName("INPUT")[0].setAttribute("type" , "button");
setAttribute()方法创建或改变某个新属性。如果指定属性已经存在,则只设置该值。
重要代码:获取事件源
function $(id) {
return typeof id == "string" ? document.getElementById(id) : null;
}
补充: 1.在CSS中,<label>
标签用于将文本与表单元素关联起来。它的作用是提供一个可点击的标签,当用户点击标签时,关联的表单元素会获得焦点或被选中。
<label>
标签通常与表单元素(如输入框、复选框、单选按钮等)配合使用。通过将标签的for
属性设置为对应表单元素的id
,可以建立标签与表单元素之间的关联。
2.placeholder=“”//在input文本框中显示文字,但是不影响输入