1、Javascript概述
2、Javascript基础语法
3、变量和常量(重点)
4、数据类型
========================================JS概述==================================================
1、JS概述
1、什么是JS
JS是一种运行于JS解释器/引擎中的解释型脚本语言
编译型语言:程序在运行前会进行编译(所有的),有问题是不会让运行的,如:C,C++
解释型语言:运行之前不会编译,直接执行,出错则停止(一行一行扫描,出错就停止)
JS解释器/引擎:是JS脚本的运行环境
1、独立安装的JS解释器(NodeJS)
2、嵌入在浏览器内核中的JS解释器
PC,平板,手机,电视 ... 全部都支持JS
2、JS的发展史
1、1992年 Nombas 为自己的软件开发了一款脚本语言C Minus Minus(C--)后更名为 ScriptEase,可以嵌入在网页中。
2、1995年 Netscape为自己的Navigator2.0 开发了另一种客户端脚本语言-LiveScript,为了借助Java势头(与Java毫无关系),所以更名为 Javascript
3、1996年Microsoft为了进军浏览器市场,在IE3.0 中 发布了Javascript的克隆版,称为JScript
4、1997年,Javascript1.1作为草案提交给了ECMA(欧洲计算机制造商联合会),Javascript的核心 被更名成 ECMAScript
完整的JS语言是由三部分组成:
1、核心(ECMAScript)
2、文档对象模型(DOM)
Document Object Model
让JS有能力与页面进行对话(操作页面内容)
3、浏览器对象模型(BOM)
Browser Object Mode
让JS有能力与浏览器进行对话(操作浏览器)
JS语言的特点和用途
1、特点
1、任何文本工具都可以开发JS
2、无需编译,直接由JS引擎来执行
3、弱类型语言
由数据来决定数据类型
4、面向对象的语言
2、用于
1、客户端的JS
1、客户端数据计算
2、表单输入验证
3、浏览器事件的触发和处理
4、网页特效制作(如:网页轮播效果)
5、服务器端的异步(同一时间点上可以做多个事儿,用户输入密码时网页会验证用户名)数据提交(AJAX)
2、服务器端的JS
1、分布式运算
2、实时服务器
3、窗口应用
4、网络应用
========================================JS基础语法============================================
2、JS基础语法
1、使用JS(重点)
1、浏览器内核(区分浏览器,主要看内核)
内核作用:负责页面内容的渲染,造成页面兼容性的主要原因
组成:
1、内容排版引擎-解析HTML/CSS
2、脚本解释引擎-解析JS
浏览器 内核名 排版引擎 脚本引擎
IE Trident -(自带的) Chakra
Firefox Gecko - Monkey
Safari Webkit Webcore Nitro
Chrome Webkit Webcore V8(目前运行速度最快)
Opera Presto - Carakan
Opera Webkit Webcore V8
(2013~今)
2、第一个JS程序
1、搭建JS运行环境
1、使用独立安装的JS解释器(NodeJS)
console.log("Hello World");
2、使用浏览器内核中的JS解释器
1、直接在Console中输入脚本并执行
2、将JS脚本嵌入在html页面中执行(最常用)
1、html元素事件编写脚本
事件:onclick
<ANY οnclick="脚本代码">
2、在 <script>元素中嵌入JS脚本
<script>
JS脚本
</script>
document.write("被排版引擎所解析的内容");
3、使用外部脚本文件编写JS脚本
1、创建一个 **.js 文件
在文件中编写JS脚本
2、在使用的页面上进行引用
<script src="js文件URL"></script>
2、JS调试(重要)
console -> consloe(单词写错)
console -> Console(大小写)
console.log("");--> console.log(“”);(中英文)
1、代码错误
解释型语言,若某行代码出现错误,解释器则终止此次执行。但不会影响后续块和后续的HTML执行
<script></script>
3、语法
1、编写JS代码
1、语句-会被JS解释器所执行的代码
console.log();
document.write();
由表达式、关键字、运算符组成
大小写敏感
由分号或换行表示结束
2、注释-不会被JS解释器所执行的内容
单行注释://
多行注释:/* */
==============================================变量和常量========================================
3、变量和常量(重点)
1、什么是变量
问题:向银行存1000元钱,每年利率5%,求10年后的本息是多少钱?
内存:保存计算机程序在运行过程中所需要用到的数据(临时存储)
变量:内存中的一段存储空间,目的是为了临时的保存数据。
值:保存在变量(内存空间)中的数据
变量名:内存空间的别名,可以自定义
2、变量的声明
到内存中申请一段空间保存数据
1、语法
1、声明变量
var 变量名;
2、为变量赋值
变量名=值;
注意:
声明时可以省略var关键字,省略之后变量就成了"全局变量",推荐不要省略var关键字(函数内)
ex:声明一个变量叫 age,保存数据 18
var age;
age=18;
3、声明变量并直接赋值
var 变量名=值;
ex: var age=18;
4、在一条语句中声明多个变量
声明变量age1的值为18,age2的值为36,age3的值为50
var age1=18;
var age2=36;
var age3=50;
语法:
var 变量名1,变量名2=值,.......;
ex:
var age1=18,age2,age3=50;
2、变量名命名规范
1、不允许使用JS关键字及保留关键字
2、可以包含字母、数字、下划线(_)以及$
var %name; //错误,不允许出现%
3、变量名不能以数字开头
var 1=2; //错误,不能以数字开始
var 1name;//错误
4、变量名最好见名知意
var a,b,c,d,e,f,g;
var aa,ab,ac;
//以上方式不推荐
var stuName,stuAge;
var xymc;
5、可以采用"匈牙利命名法","驼峰命名法","下划线命名法"
驼峰命名法:
如果变量名由一个单词组成,全小写
如果变量名由多个单词组合而成,第一个单词全小写,从第二个单词开始,每个单词的首字母变大写
ex:
var age=15;
var stuAge;
3、变量的使用
1、未经初始化的变量
声明了变量,但是没有被赋过值,值默认为 undefined(未定义)
var userName;//定义变量,但未赋值
console.log(userName);//undefined
console.log("userName");//打印的为文本
小习惯:
声明变量时,字符串的话可以设置默认值为"",如果是数字的话,可以设置默认值为 0
2、变量未被定义过,而被直接使用(必须得定义,可以不赋值)
console.log(userName);
语法错误!
3、对变量值进行的存、取操作
1、对变量进行存值操作-SET操作(将值赋给变量)
运算符:=(赋值运算符)
如果变量名出现在 = 的左边,就是赋值操作
ex:
var userName;
userName="三丰.张";
var userAge=28;
userAge=29;
2、对变量进行取值操作-GET操作
只要变量名称没有出现在=的左边,那么就都是取值操作。
var stuName="张三丰";//为stuName赋值
console.log(stuName);//取值
var newName=stuName;
以上操作,对于stuName,是取值操作
对于newName,是存值操作
document.write(stuName);
window.alert(stuName);
var num1 = 10;
var num2 = 20;
var sum = num1 + num2;
4、运算符-算术运算符
+,-,*,/,%(模)
% : 取余数
5%2=1
6%2=0
适用场合:
1、判断奇偶性和倍数
ex:15 是 3 的倍数吗 ?
15%3=0 :余数为0,所以15是3的倍数
25%50 = 25
2、获取某数字的最后几位
ex:想获取1234的最后一位数字
1234%10 : 获取最后一位
1234%100 : 获取最后2位
+ :
1、数字运算
如果 + 两边的数据 都是数字类型,则进行的就是 加法操作(紧扣定义)
var num1 = 15;
var num2 = 18;
var sum=num1+num2;
2、字符连接
如果 +两边有一个是字符串的话,则进行的就是 字符连接 操作
var stuName="三丰.张";
var stuAge=18;
var result=stuName+stuAge;//三丰.张18
var num1 = "15";//字符串而非数字
var num2 = "18";//字符串而非数字
var sum = num1+num2;
var num1 = 15;
var num2 = 18;
var str = "Hello";
//var result=num1+num2+str;//33Hello
var result=str+num1+num2;//Hello1518
5、常量的声明和使用
1、什么是常量
在程序中,一旦声明,在运行过程中就不允许被修改的数据,称之为常量
常量在程序中表示的是常理型的数据,如:PI
2、语法
const 常量名=值;
注意:常量名一般采用全大写的模式
ex:
1、声明一个常量,来表示PI的值为3.14
const PI=3.14;
2、声明一个常量,来表示一周有7天
const DAYOFWEEK=7;
3、练习
定义一个变量(r),来表示一个圆的半径。
通过JS来计算该圆的周长(l),以及面积(s)
l = 2πr;
s = πrr;
打印:
半径为 .. 的圆的周长是:xxx
半径为 .. 的圆的面积为:xxx
============================================数据类型==========================================
4、数据类型
8bit(位)=1byte(字节)(位就是1/0)
1024byte = 1kb(千字节)
1024kb = 1MB(兆字节)
1024MB = 1GB
1024GB = 1TB
问题:保存一个数字(25)到内存中,占据多大的空间呢???
1、什么是数据类型
保存在内存中的数据的类型,数据类型决定了数据在内存中占据多大的空间
2、数据类型分类
1、基本数据类型
1、number类型
数字类型:可以表示32位(即4字节)的整数,也可以表示64位(即8字节)的浮点数(小数)
整数:
十进制:逢10进1
八进制:逢8进1
以0作为开始的数字都是八进制数字
var num = 010;
十六进制:逢16进1
0-9,A-F
以0x作为开始的数字都是十六进制
小数:
使用小数点记录数据:12.34
使用指数记录数据:3.14e10
2、string类型
字符串类型:可以表示一系列的文本字符数据
由Unicode(万国码)字符(每个字符占两位)、数字、标点符号组成
查看字符的Unicode编码
字符.charCodeAt();
字符 "张",在内存中的存储形式 :0101111100100000 1个汉字等于2个字节即2个英文字母,合计16位
要求:字符串使用过程中,必须用""或''引起来
var num1 = 1000; //数字,4字节
var num2 = 1000;
num+num2 : 2000
var str1 = "1000";//字符串,8字节
var str2 = "1000";
str1+str2 : 10001000
转义字符:
\n : 换行
\r : 回车(非换行,接收指令)
\t : 制表符
\' : '
\" : "
\\ : \
3、boolean类型
布尔类型:来表示结果的真或假,肯定或否定
该类型仅有两个值:
true 表示真(肯定)
false 表示假(否定)
ex:
var isBig = true;
var isSmall = false;
在实际运算中,true可以当成1做运算,false可以当成0做运算
4、undefined
语义:访问的数据不存在
产生undefined的场合:
1、声明变量未赋值
2、访问的对象的属性不存在
5、Null
2、引用类型