文章目录
前言
重点内容
1.JavaScript的书写位置是哪里?
2.JavaScript有哪些输出语句?
3.如何定义变量?变量的合法命名规则有哪些?
4.前端开发主要有哪些层?语言和功能是什么?
难点内容
1.什么是变量声明的提升?
2.JavaScript中,等号的功能是什么?
3.只var定义一个变量,但是没有赋初值,这个变量的值是?
一、JavaScript简介
JavaScript是一种属于网络的高级脚本语言,已经被广泛用于Web应用开发,常用来为网页添加各式各样的动态功能,为用户提供更流畅美观的浏览效果。通常JavaScript脚本是通过嵌入在HTML中来实现自身的功能的。
1.前端开发的层与语言
通过这张图我们可以看出前端三大基本语言的功能与联系,简单来说,HTML就是一只小鸟的骨架,而有了骨架后我们需要用CSS为其饰以皮毛血肉,光有完整的形体还不够,我们还需要让它可以与外界产生交互,此时,就需要我们的JavaScript出场啦!
2.JavaScript的语言风格与特性
1. 类C语言的风格,简单好学
2. 弱类型,繁文缛节少
3. 丰富效果,易产生兴趣
3.语言体系
ECMAScript是一种由Ecma国际(前身为欧洲计算机制造商协会,European Computer Manufacturers Association)通过ECMA-262标准化的脚本程序设计语言。这种语言在万维网上应用广泛,它往往被称为JavaScript或JScript,所以它可以理解为是JavaScript的一个标准,但实际上后两者是ECMA-262标准的实现和扩展。
文档对象模型(Document Object Model,简称DOM),是W3C组织推荐的处理可扩展置标语言的标准编程接口。它是一种与平台和语言无关的应用程序接口(API),它可以动态地访问程序和脚本,更新其内容、结构和www文档的风格(目前,HTML和XML文档是通过说明部分定义的)。文档可以进一步被处理,处理的结果可以加入到当前的页面。DOM是一种基于树的API文档,它要求在处理过程中整个文档都表示在存储器中。
ECMAScript是JavaScript的核心,但是如果要在web中使用javascript,那么BOM(浏览器对象模型)才是真正的核心。BOM提供了很多对象,用于访问浏览器的功能,这些功能与任何网页内容无关。
二、JavaScript基本语法与变量
1.初识输出语句
JS输出语句有两种形式:
第一种是alert()语句,它可以浏览器界面直接弹出警告框,以此来达到检查输出结果的目的;
第二种则是console.log()语句,它不会直接弹出,我们可以通过右键检查console控制台来得到我们想要的结果。
需要注意的是alert()是内置函数,console是JS的内置对象,通过加点来调用log()“方法”,所谓“方法”便是对象能够调用的函数,我们在后面会学到这方面的内容,操作起来并不难,在此不再赘述。
2.JS变量
(1) 什么是变量
变量是在内存中存储值的符号,并非数值本身,它们仅仅是一个用于存储数值的容器。
(2) 定义变量
要想使用变量,第一步就是声明它,并给它赋值,作为弱类型语言,JS无需像C语言一样在使用前严格定义变量类型,而是采用var关键字即可,它可以定义数字,字符串,数组…,写起来极为方便。
(3) 变量命名
需要注意的是变量名中不允许包含空格或标点符号(美元符号除外)。常用写法是驼峰格式命名,具体如下:
var myMood = "happy", age=33;
var myMood, age;
myMood = "happy";
age = 33;
上述两种命名方式效果相同,但第一种明显简洁方便。
三、JS数据类型
1.检测数据类型
使用typeof运算符来检测,具体如下:
typeof 5; //number
typeof 'csdn'; //string
五种数据类型检测结果:
2.五大基本数据类型
(1) Number
数字类型,所有数字不分大小、不分整浮、不分正负,都是数字类型。
NaN是英语“not a number”的意思,即“不是一个数”,但它是一个数字类型的值。
typeof NaN; //number
// 0除以0的结果是NaN,事实上,在数学运算中,若结果不能得到数字,其结果往往都是NaN
// NaN有一个“奇怪”的性质:不自等。
(2) String
字符串就是“人类的自然语言”,字符串要用引号包裹,双引号或者单引号均可。
加号可以用来拼接多个字符串,要将一个变量的值“插入”到字符串中,要“斩断链接”。
字符串的length 属性表示字符串的长度。
具体如下:
'imo'+'oc'; // 'immoc'
var year = 2022;
var str = '北京冬季奥运会在' + year +'年召开';
'我喜欢JS,我也喜欢css'.length // 13
常用方法:
具体操作详见-----。
(3) Boolean
布尔型值只有两个:true 和 false,分别表示真和假。
(4) undefined
一个没有被赋值的变量的默认值是undefined,而undefined 的类型也是undefined
即:undefined又是值,又是一种类型,这种类型只有它自己 一个值
(5) null
null表示“空”,它是“空对象”
当我们需要将对象销毁、数组销毁或者删除事件监听时,通常将它们设置为
box.onclick = null;
使用typeof 检测 null 值结果是object ,这点尤其要注意。
3.复杂数据类型
Object、Array、Function 、RegExp、Date Map、Set、Symbol等等
4.数据类型转换
具体操作详见-----。
四、JS表达式与运算符
1.算数表达式
默认情况,乘除法的优先级要高于加法和减法;必要时可以使用括号来改变运算的顺序。加号有“加法”和“连字符”两种作用:如果加号两边的操作数都是数字,则为“加法”,否则为连字符。如果操作数参与数学运算不是数字型,那么JavaScript 会自动将此操作数转换为数字型,隐式转换的本质是内部调用Number()函数。JavaScript中没有提供幂计算、开根号的运算符。需要使用 Math对象的相关方法进行计算。
Math.pow(2,3) // 8
Math.sqrt(81) // 9
Math.ceil(2.5) // 3 向上取整
Math.floor(2.5) // 2 向下取整
2.关系运算符
两个等号==运算符不比较值的类型,它会进行隐式转换后比较值是否相等三个等号运算符,===不仅比较值是否相同,也比较类型是否相同。
isNaN()函数可以用来判断变量值是否为NaN,但也不好用,它的机理是:只要该变量传入 isNaN() Number()的执行结果是NaN,则isNaN()函数都会得到true。
特殊值的相等关系如下:
null == undefined // true
null === undefined // false
NaN == NaN // false
3.逻辑运算符
逻辑运算的优先级是:非 → 与 → 或
总体运算顺序:非运算→ 数学运算 → 关系运算 → 逻辑运算