前言
JS核心语法是对JS基础语法的一个补充说明, 本质上还是对ECMAScript语法的一个延伸和进阶。
复习JavaScript:作用、组成、写法、注释、语句、执行原理...
一、关于JavaScript
问题1.为什么要学习JavaScript?
一个前端网页主要由三门语言组成,他们之间是缺一不可的关系。
HTML:确定网页的结构
CSS:确定网页的样式
JavaScript:确定网页的行为(交互)
众所周知,在前端开发中一个网页的源代码主要由三部分组成(HTML、CSS、JavaScript),其中 HTML确定网页的结构,CSS确定网页的样式,而 JavaScript则主要负责网页的行为(动态效果,交互事件等)。
总结:因为前端网页由三部分组成,HTML、CSS、JavaScript。
问题3:JavaScript三个组成部分?
ECMAScript-JavaScript的核心
ECMAScript定义了JavaScript的语言规范。
JavaScript的核心:描述了语言的基本语法和数据类型,ECMAScript是一套标准,定义了一种语言的标准与具体实现无关。
DOM-文档对象模型
一套操作页面元素的API。
DOM可以把HTML看做是文档树,通过DOM提供的API可以对树上的节点进行操作。
BOM-浏览器对象模型。
一套操作浏览器功能的API。
通过BOM 可以操作浏览器窗口,比如:弹出框,控制浏览器跳转、获取分辨率等。
二、JS代码的三种写法(写法位置与css一致)
注意:
- 当一个HTML文件存在多种写法时,是自上而下解析的。
- script标签没有src属性表示内联样式,当script标签有src属性表示外联样式,外联样式的JS代码只能写在js文件中。
三、JS注释的两种写法
1.作用:
1.理清思路,方便自己以后阅读代码;
2.规范编程,方便以后别人接手代码便于维护。
2.两种写法:
- // 注释内容:单行注释:注释内容只能是一行,适用于注释内容较少。
vscode快捷键CTRL+/
- /*注释内容 */:多行注释:注释内容可以是多行,适用于注释内容较多,比如一行写不下。
vscode快捷键ALT+SHIFT+A
四、JS:输出语句与输入语句
1.输入语句:
1)在网页弹出一个输入框,让用户输入数据------>prompt(“前端薪资是多少呀?”);
2)在网页弹出一个确定框,让用户输入确定/取消。----->confirm("你确定你已经成年了吗?");
2.输出语句:
1)在网页弹出一个提示框,输出数据,通常用于调试用户----->alert('hello world');
2)在控制台打印某个数据。(这个写法不是给用户看的,而是给程序员自己调试看到)----->console.log("颖火虫呀!");
3)将数据显示到网页,相当于给boby添加内容。------>document.write(嘻嘻~,考试都过。);
五、JS代码执行原理
1.计算机组成
1)软件
应用软件:浏览器(chrome/ie/firefox)、QQ、SublimeWordwebstorm
·系统软件:windows,Linux,unix,osx,ios,android
2)硬件
三大件:CPU,内存硬盘
输入设备:鼠标,键盘,摄像头等
输出设备:显示器,打印机,投影仪等
2.计算机运行的原理(程序运行原理)
1.计算机将存储在硬盘中的html文件读取到内存中;
2.浏收器内核编译器开始编译代码(cpu只能外理二进制数据,需要将我们写的代码转成二进制);
3.CPU处理与计算
4.CPU将我们代码在运行时产生的数据保存到内存中。
JavaScrip——数据类型
文章目录
- 前言
- 一、数据类型
- 二、栈类型与堆类型
- 三、检测数据类型
- 四、数据类型转换
- 1.转化为布尔类型
- 2.隐式转换
- 五、正则表达式语法(了解)
- 1.什么是正则表达式
- 2.正则表达式的作用
- 3.如何使用正则表达式
- 4.正则表达式特点
- 5.学习目标
- 6.正则在项目中的实际使用
- 7.元字符与原义符
- 8.字符类
- 9.反向类(负向类): ^
- 10.范围类
六、操作符
- 1.等于操作符
- 2.全等操作符
前言
JavaScript定义了基本数据类型和复杂数据类型,可以使用typeof关键字来判断一个变量的类型。
一、数据类型
1.为什么需要有数据类型?
每一种编程语言都有自己的语法规则,在处理数据的时候,也会有自己的规则,不是任何数据都可以处理的。
2.什么是数据类型?
JS编译器在解析代码的时候,会产生各种不同的数据。 而不同的数据'运算'与'存储'方式都不同, 计算机需要对这些数据进行分类,称之为数据类型。
3.数据类型分类(暂不详解)
二、栈类型与堆类型
- 在js中基本类型在内存中占据空间小、大小固定,他们的值保存在栈(stack)空间。
- 引用类型占据空间大,大小不固定,栈内存中存放地址指向堆(heap)内存中的对象。
三.typeof-检查数据类型
语法: typeof 数据
四、数据类型转换
1.转化为布尔类型
语法:Boolean(数据)
(1)有7种数据结果会得到false:
- 0
- -0
- NaN
- ' '
- undefind
- null
- false
(2)除flase 7种之外的一切数据结果为true
2. 隐式转换
当运算符两边的 ’数据类型不一致‘ 的时候,编译器会转成一致后运算:
(1)转换数字: 算术运算符 + - * / %
(2)转换字符串: 连接符+ (+号两边只要有一边是字符串,此时+就是连接符)
(3)转换布尔: 逻辑非 !
五、正则表达式语法(了解)
1.什么是正则表达式
正则表达式是一个用于对字符串实现逻辑匹配运算的对象
a.正则是内置对象 : 存储一些属性和方法
b.表达式:对字符串 进行逻辑匹配 运算
- 正则表达式:RegExp(regular expression)是ECMAScript内置对象
2.正则表达式的作用
按照某种规则来匹配字符串,而正则表达式就是制定这个规则
对 字符串进行逻辑匹配 运算
3.如何使用正则表达式
(1)创建正则表达式对象
(2)开始匹配使用test()方法
4.正则表达式特点
对初学者极度的不友好
非常的晦涩难懂
5.学习目标
1.可以使用正则表达式验证常用表单文本(手机、邮箱、qq、座机、姓名)
2.了解正则表达式在开发中的一些应用场景
6.正则在项目中的实际使用
- 在手机号的校验规则中添加一个自定义校验
正则表达式使用流程 :
(1)调用构造函数,创建正则对象:newRegExp(/正则表达式/);
(2)调用test方法,对字符串进行运算----> true:符合规则 false:不符合
7.元字符与原义符
一个正则表达式主要由两部分组成
(1)原义文本字符 : 就是字符本身的含义,千万别想多了
(2)元字符: 改变了字符串本身的含义 (相当于js的关键字):
. \ | [] {} () + ? * $ ^
例如:
/abc/: 含义,就是检查字符串中有没有abc。 别想多了,不是说有a或者有b或者有c,也不是说有a和b和c。
8.字符类
(1)一般情况下,正则表达式的一个字符就是对于字符串的一个字符,这样处理比较方便
例如: /abc/ : 含义就是匹配字符串'abc’
(2)有时候我们并不想只匹配一个字符,而是想要匹配符合某一类特征的字符,这时就可以使用字符类
(3)创建简单字符类:: []
这里类指的是符合某些特征的对象,只是一个泛指,而不是指某个字符
例如正则表达式: /[abc]/:把字符a或b或c归为一类,可以匹配这类的字符
/[abc1/ :含义是,匹配字符串中只要有 a或者b或者c任何一个即可
9.反向类(负向类): ^
反向类意思是不属于某类的内容
例如正则表达式:[^abc] :含意是,不是字符a或b或c的内容
只要有任何一个字符不是a或者b或者c,就满足条件
10.范围类
(1)需求:使用字符类匹配数字
(2)正则表达式:[0123456789] :含义是,有任何数字的内容:
弊端:表达式冗余,假如我要匹配字母,那就要写 [abcdefg...........xyz],非常麻烦(3)如何解决冗余问题?
使用范围类
(4)范围类:
例如:
[0-9] 含义是, 0-9之间的任意字符
[a-z]:含义是,a-z之间的任意字符
[A-Z]:含义是,A-Z之间的任意字符
注意点:
范围类是一个闭区间, [a-z],这个范围包含字符a和z本身
在[]内部是可以连写的,[0-9a-zA-Z] :含义是,包含数字0-9,或者a-z,或者A-Z任意
右边一定要大于左边,例如「5-8],这是合法的表示5-8之间的数字,不能写[8-5]
六、操作符
1.等于操作符
(1)等于操作符用两个等于号(==)表示,如果操作数相等,则会返回 true
(2)前面文章,我们提到在JavaScript中存在隐式转换。等于操作符(==)在比较中会先进行类型转换,再确定操作数是否相等
(3)遵循以下规则:
如果任一操作数是布尔值,则将其转换为数值再比较是否相等
如果一个操作数是字符串,另一个操作数是数值,则尝试将字符串转换为数值,再比较是否相等
2.全等操作符
(1)全等操作符由3个等于号(===)表示,只有两个操作数在不转换的前提下相等才返回true。即类型相同,值也需相同。
(2)undefined 和 null 与自身严格相等。
总结
以上就是今天要讲的内容,本文仅仅简单介绍了JavaScrip的相关知识点,而JavaScrip是Web页面中的一种脚本编程语言,也是一种通用的、跨平台的、基于对象和事件驱动并具有安全性的脚本语言。它不需要进行编译,而是直接嵌入在HTML页面中,把静态网页转变成支持用户交互并响应相应事件的动态页面。
本文含有隐藏内容,请 开通VIP 后查看