JavaScript学习路径

  • Javascript基础
    • JS特点
    • 使用
    • JS编写位置
    • JS基本语法
    • 字面量和变量
    • 标识符
    • 数据类型
      • String字符串
      • Number
      • 布尔值
      • Null和Undefined
    • 强制类型转换
      • String
      • Number
      • 其他进制的数字
      • 布尔值
    • 算数运算符
    • 一元运算符
    • 自增和自减
    • 逻辑运算符
      • 非布尔值的与或运算
    • 赋值运算符
    • 关系运算符
      • Unicode编码
      • 相等运算符
    • 条件运算符(三元运算符)

Javascript基础

JS特点

–解释型语言
–类似于C和Java的语法结构
–动态语言
–基于原型的面向对象

使用

引用

<script type="text/javascript"></script>

alert()
下面我们使用alert()写一个警告框
js一般放于head标签内
代码如下

<!DOCTYPE html>
<html lang="en">
<head><meta charset="UTF-8"><meta http-equiv="X-UA-Compatible" content="IE=edge"><meta name="viewport" content="width=device-width, initial-scale=1.0"><title>Document</title><script type="text/javascript">alert("这是第一行js代码")</script>
</head>
<body></body>
</html>

运行效果如下

document.write()
下面我们使用document.write()

<!DOCTYPE html>
<html lang="en">
<head><meta charset="UTF-8"><meta http-equiv="X-UA-Compatible" content="IE=edge"><meta name="viewport" content="width=device-width, initial-scale=1.0"><title>Document</title><script type="text/javascript">![请添加图片描述](https://img-blog.csdnimg.cn/15e641135f7244d48cdfda70bba239dd.gif)</script>
</head>
<body></body>
</html>

效果如下

我们的body内是没有内容的,则这个document.write是写入body内的
console.log()
下面我们使用console.log向控制台输入

<!DOCTYPE html>
<html lang="en">
<head><meta charset="UTF-8"><meta http-equiv="X-UA-Compatible" content="IE=edge"><meta name="viewport" content="width=device-width, initial-scale=1.0"><title>Document</title><script type="text/javascript">console.log("在哪里出现")</script>
</head>
<body></body>
</html>

效果

我们可以看到这里页面中是没有数据的,那么这个输出到哪里的呢?

我们发现它出现在开发者控制台的控制台中
如果我们将上面三个放在同一个页面会怎么样呢
这里就不放代码,直接看效果了

我们可以看到这些是按顺序进行的。
上面的三个都是输出语句

JS编写位置

我们可以将js代码编写到标签的onclick属性中

下面我们使用js来编写一个点击事件
这里放关键代码

<body><button onclick="alert('已点击');">点我一下</button>
</body>

下面我们来看看效果

只有当我们点击按钮时才会触发js代码,这是由于我们的onclick属性决定的。

下面我们将js代码写入超链接的herf中
如此,点击超链接时会执行js代码

<body><a href="javascript:alert('已点击');">点击</a>
</body>

下面我们看看效果

上面的种种,虽然js可以写在标签的属性内,但是题目属于结构与行为耦合,不方便维护,所以这里不推荐使用。
那么我们写在哪里呢?
开始时我们将js写在script标签内的。同样我们可以将js写在一个单独的文件中,引入来使用
由script标签引入
和css引入方式类似,我们在head内使用

<script src=""></script>

这样就实现了js的引入,这里就不过多说明了。
将JS写入到外部文件夹中可以在不同页面中同时引用,也可以利用到浏览器的缓存机制,这是很推荐的使用方式
Tips:script标签一旦用于引入外部文件了,就不能在编写代码了,即使编写了,浏览器也会忽略。如果需要那直接可以创建一个新的script标签
例如

<script src=""></script>
<script>***</script>

第一行是引入外部js文件,所以我们另起一个来运行

JS基本语法

JS注释

/*
~~
*/

这是多行注释,和CSS差不多,注释内容不会运行,但是可以在源码中查看

//单行注释

这是单行注释,只对其后的有作用
1.JS中严格区分大小写
2.JS中每一条语句以分号(;)结尾
但是如果我们不加分号,浏览器会自动添加,但是会消耗一些系统资源,而且有时候浏览器会错加分号,所以开发中分号必须写
*3.JS中会忽略多个空格和换行,所以我们可以利用空格和换行对代码进行格式化

字面量和变量

字面量:一些不可以改变的值
例如:1、2、3之类
字面量是可以直接使用的,但是我们一般都不会直接使用字面量
变量:变量可以用来保存字面量,而且变量的值是可以任意改变的
变量更加方便我们使用,所以在开发中都是通过变量去保存一个字面量,而且我们很少直接使用字面量。也可以通过变量来描述字面量

声明变量
那么我们怎么声明变量呢?
我们使用var关键字来声明一个变量

var a;
a=123;
a=45678;console.log(a);

上面内容是写入到script标签内的,我们看看运行效果

我们可以看到控制台输出了第二次赋值的a。
我们可以将声明和赋值同时进行

var b = 789;
var c = 975;

标识符

标识符:所有可以由我们自主命名的都可以称为标识符。
例如:变量名、函数名、属性名都属于标识符。
命名一个标识符时需要遵守如下的规则
1.标识符中可以含有字母、数字、_、$
2.标识符不能以数字开头
3.标识符不能是ES中的关键字或者保留字
4.标识符一般都采用驼峰命名法:首字母小写,每个单词的开头字母大写,其余字母小写

数据类型

数据类型值得就是字面量的类型
在JS中一共有六种数据类型
String字符串
Number数值
Boolean布尔值
Null空值
Undefined未定义
Object对象
其中String Number Boolean Null Undefined属于基本数据类型,而Object属于引用数据类型

String字符串

在JS中字符串要引号引起来
使用双引号或单引号都可以,但是不能混着用
引号不能嵌套:双引号不能放双引号,单引号不能放单引号

var str = "hello";

在字符串中我们可以使用\作为转义字符,当表示一些特殊符号时可以使用\转义

var str = "我说:\"今天天气真不错!\"";
\"表示"
\'表示'
\n表示换行
\t表示制表符
\\表示\

Number

在JS中所有的数值都是Number类型,包括整数和浮点数(小数)
其中

var a = "123";
var b = 123;

上面两个不是同一个东西,a为字符串123,b为数字。
那么我们如何检查这类现象呢?
我们使用typeof检查
语法

typeof 变量
typeof a

但是这样是无法输出结果的,所以我们都使用控制台输出

console.log(typeof a);

这样我们就可以在控制台看到类型。

JS中我们可以表示的数字的最大值为

Number.MAX_VALUE

我们来看看值为多少

上面为我们JS的最大值输出结果
如果我们使用最大值平方,那么他会输出Infinity表示无穷
使用typeof检查Infinity同样会返回Number
如果我们计算如下

a = "abc" * "bcd";
console.log(a);

他会输出什么呢?
结果为NAN
NAN是一个特殊的数字,表示Not A Number不是一个数字
如果a=NAN那么检查会输出什么呢
他也会输出number。
既然有最大值,那么就会有最小值,这个最小值不是负的最大值而是另外一种
我们令a = Number.MIN_VALUE;
这里输出结果为5e-324他依然为正数,所以这不是一般我们所理解的最小值,而是零以上的最小值。

布尔值

布尔值只有两个,主要用来做逻辑判断
true表示真
false表示假
使用typeof检查布尔值还会返回boolean

Null和Undefined

Null类型的值只有一个,就是null
null这个值专门用来表示一个为空的对象
使用typeof检查一个null值会返回object

Undefined类型值只有一个,就是undefined
当声明一个变量,但是不给变量赋值时,它的值就是undefined
使用typeof检查一个undefined时也会返回一个undefined

强制类型转换

String

强制类型转换:将一个数据类型强制转换为其他的数据类型,类型转换主要指,将其他的数据类型转换为String、Number、Boolean
那么我们怎么将其他数据类型转为String呢?
法一:
调用被转换数据类型的toString()方法,这个方法不会影响到原变量
举例

var a = 123;
var b = a.toString();console.log(typeof b);
console.log(b);

输出结果如图

这里我们可以看到数据类型成功转换,
那么我i吗如果不想另创新值,我们可以直接使用a = a.toString();来转换,效果是一样的
Tips:null和undefined是没有toString()方法,如果调用则会报错
法二:
调用String()函数并将被转换的数据作为参数传递给函数。

a = 123
a = String(a);

输出结果是和法一相同的
但是这种方法可使null和undefined转换为字符串

Number

调用Number()函数将值转换为Number类型
如果我们被转换的为字母之类的呢,转换后输出值为NaN
str–>数字
如果是纯数字的字符串,则直接将其转换为数字
如果字符串内含有非数字的内容,则转为NaN
如果字符串是一个空串或者是一个全是空格字符则转换为0
布尔–>数字
true转为1
false转为0
null–>数字 0
undefined–>数字NaN
法二
这种专门对付字符串
parseInt()把一个字符串转换为一个整数
parseFloat()把一个字符串转换为一个浮点数
parseInt()可以将一个字符串中有效整数内容取出来
同样parseFloat()他获得有效小数例如123.236.21则会筛出123.236会忽略后面.21因为他不是有效小数

其他进制的数字

如果需要16进制数字,则需以0x开头
eg:a = 0x10;则输出结果为16
如果a =0xff则输出255
如果需要以8进制数字则以0开头
如果表示2进制数字则以0b开头,但是不是所有的浏览器都是支持的
像070之类的字符串,有些浏览器会当成8进制数转换有些会以10进制转换那么我们怎么解决呢

a = "070"
a = parseInt(a,10); //10表示10进制

可以在parseInt()中传递一个第二参数,来指定数字的进制

布尔值

将其他数据类型转换为Boolean使用Boolean()函数
数字

var a=123
a = Boolean(a);
console.log(a);

输出结果为true,而a赋值为-123输出还是true;
输入Infinity输出依然为true而赋值为0则输出false;
综上我们知道非零为true及除了0和NaN其余都是true
字符串
除了空串其余都为true
null和undefined都会转换为false

算数运算符

运算符也叫操作符,通过运算符我们可以对一个或多个值进行运算,并获取运算结果。
例如:typeof就是运算符,可以获得一个值的类型,他会将该值的类型以字符串的形式返回。
算数运算符:

+       可以将两个值进行加法运算并将结果返回,如果对两个字符串进行加法运算,则会做拼串操作,任何值和字符串做加法运算,都会先转换为字符串,然后再和字符串做拼串操作
-
*
/
%取余

由上面加法的转换字符串操作,我们可以利用,只需要为任意的数据类型+一个""即可将其转换为字符串,这是一种隐式类型转换
Tips:除了加法会将其余数据类型转换为字符串,其余都是转换为数字类型

一元运算符

一元运算符只需要一个操作数,例如typeof()、+正号(不会对数字产生任何影响)、-负号(可以对数字进行负号的取反),对于非数字类型的值他会先转换为数字类型然后再计算,可以对一个其他类型数据使用+,来将其转换为number,他的原理和Number()函数是一样的

自增和自减

自增为++
通过自增可以使变量在自身基础上加1
对于一个变量自增后,原变量的值会立即自增1
无论是a++还是++a都会立即使原变量值自增1
不同的是a++和++a的值不同
a++的值等于原变量的值(自增前的值)
++a的值等于原变量的新值(自增后的值)
自减为–
和自增几乎一样这里就不赘述了

逻辑运算符

!非
&&与
||或


如果计算

a =!a;

那么输出结果为false
所谓非运算符就是对一个布尔值进行取反操作
true变false,false变true
如果对一个布尔值去两次反,它不会变化
如果对非布尔值运算,则会将其转换为布尔值然后取反。
所以我们可以为任意数据类型取两次反,来将其转换为布尔值原理和Boolean()一样
&&
&&可以对符号两侧值进行运算并返回结果
运算规则:
两个值中只要由一个值为false就返回false
只有两个值都为true才返回true
JS中的与属于短路与,如果第一个值为false则不会看第二个值
||
||可以对符号两侧的值进行或运算并返回结果
运算规则:
两个值中只要有一个true就返回true
如果两个值都为false才返回false
JS中的或属于短路的或
如果第一个值为true则不会检查第二个值

非布尔值的与或运算

&&和||对非布尔值运算
会先将其转换为布尔值,然后运算
&&
如果第一个值为true则必然返回第二个值
如果第一个值为false则直接返回第一个值
||
如果第一个值为true则直接返回第一个值
如果第一个值为false则返回第二个值

赋值运算符

=可以将符号右侧的值赋值给左侧的变量
+=
a +=5等价于 a = a + 5
-=
a-=5等价于a = a - 5
*=
a*=5等价于a=a*5
/=
a/=5等价于a=a/5
%=
a%=5等价于a=a%5

关系运算符

通过关系运算符可以比较两个值之间的大小关系
如果关系成立他会返回true,如果关系不成立则额返回false

>
判断符号左侧值是否大于右侧值
如果关系成立他会返回true,如果关系不成立则额返回false
>=
判断符号左侧的值是否大于或等于右侧的值
<
<=

注意的是
比较两个字符串时,比较的时字符串的字符编码,比较字符编码时时一位一位进行比较的
如果两位一样,则比较下一位,所以借用他来对英文排序。
比较中文是没有意义的
如果比较的两个字符串型数字,可能得到不可预期的结果
Tips:比较两个字符串型数字时,一定要转型

Unicode编码

在字符串中使用转义字符输入Unicode编码
\u四位编码

console.log("\u2620");

在网页中使用Unicode编码
&#编码;这里使用的编码需要10进制

相等运算符

相等运算符用来比较两个值是否相等
如果相等则会返回true否则返回false

==
相等运算
当使用==来比较两个值时,如果值类型不同,则会自动进行类型转换,将其转换为相同的类型然后再比较
不相等
不相等用来判断两个值是否不相等,如果不相等返回true,否则返回false
使用!=来做不相等运算
不相等也会对变量进行自动类型转换,如果转换后相等它也会返回false
===
全等
用来判断两个值是否全等,他和相等类似,不同的时它不会做自动类型转换
如果两个值类型不同直接返回false
!==
不全等
用来判断两个值是否不全等,和不等类似,不同的时它不会做自动类型转换
如果两个值类型不同直接返回true

undefined衍生自null所以这两个值做相等判断时,会返回true
NaN不和任何值相等,包括他自己
可以通过isNaN()来判断一个值是否为NaN

条件运算符(三元运算符)

语法:
条件表达式?语句1:语句2;
执行流程:
条件运算符在执行时,首先对条件表达式进行求值
如果该值为true则执行语句1并返回结果
如果该值为false则执行语句2并返回结果
如果条件表达式求值结果是一个非布尔值,会将其转换为布尔值然后运算

JavaScript学习 第一周相关推荐

  1. 201671010140. 2016-2017-2 《Java程序设计》java学习第一周

       java学习第一周        本周是新学期的开端,也是新的学习进程的开端,第一次接触java这门课程,首先书本的厚度就给我一种无形的压力,这注定了,这门课程不会是轻松的,同时一种全新的学习方 ...

  2. JavaScript学习 第一课(一)

    JavaScript学习 第一课(一) 学习内容 一.什么是JavaScript 二.如何引用JavaScript 三.JavaScript使用时注意的事项 四.JavaScript中的保留字与关键字 ...

  3. 《Javascript入门学习全集》 Javascript学习第一季(7)

    Javascript学习第一季(7)   上篇文章我们讲了 用dom方式 创建节点,复制节点,插入节点. 今天我们将讲 删除节点,替换节点,查找节点等. 直接从方法说起: <!--[if !su ...

  4. 掉进悬崖的小白,捡到python基础秘籍,学习第一周——语法基础,小游戏,无脑循环

    掉进悬崖的小白,捡到python基础秘籍,学习第一周--语法基础,小游戏,无脑循环 人生苦短,我用python 语言的种类: 语言的发展: 什么是python 搭建 Python开发环境: 集成开发环 ...

  5. Datacamp 学习第一周

    Datacamp 学习第一周总结 Intro to Python for Data Science 列表 numpy package 字典 pandas comparision operators l ...

  6. 我的JAVA学习第一周知识总结,个人感受小结

    JAVA学习第一周 1,了解三种开发模型 2,建包.建类的规范格式 3,了解不同数据类型 4,JAVA环境搭建 5,JVM.JRE.JDK是什么 6,if/else if语句的使用 7,各个语句swi ...

  7. 前端学习第一周-计算机基础,html标签的介绍,其中包括列表,表格以及表单的使用

    前端学习第一周-HTML基础 文章目录 前端学习第一周-HTML基础 前言 DAY 1 计算机组成 计算机网络 DAY 2 vscode快捷方式 HTML骨架 DAY 3 HTML属性 HTML标签 ...

  8. python学习第一周总结

    python学习第一周总结 一.Markdown语法 Markdown是一种轻量级标记语言,排版语法简洁,它使用易读易写的纯文本格式编写文档,可与HTML混编,可导出 HTML.PDF 以及本身的 . ...

  9. Java学习第一周总结

    201711671227<Java程序设计>第一周学习总结 教材学习内容总结 主要学习了如何下载及安装Java,如何调试环境变量,系统变量等,其次更为重要的是掌握了使用Java来编译运行程 ...

最新文章

  1. 在线post测试java接口测试_好用的在线HTTP接口测试 - HTTP GET/POST模拟请求测试工具-ApiPost...
  2. 2020牛客国庆集训派对day2 AKU NEGARAKU
  3. 手机(jzoj 1983)
  4. mac solr mysql 配置文件_Solr配置文件浅析
  5. yii不能没有提示验证错误信息_安装Mac系统时提示”应用程序副本不能验证 它在下载过程...”的解决方法...
  6. 《Python入门到精通》函数
  7. Win10系统 如何查看win10版本类型及版本号
  8. 铁大Facebook——十天冲刺(4)
  9. 非直连方式下C语言程序与数据库的消息交互流程
  10. 笔记本电脑如何连接手机热点_如解决Mac连接手机热点出错问题 ?
  11. matlab符号系统
  12. css给文字设置动态效果,利用纯CSS实现动态的文字效果实例
  13. Dlib模型之驾驶员疲劳检测一(眨眼)
  14. 常用会计科目名词解释
  15. window10添加局域网计算机,win10系统加入局域网连接的设置方案
  16. OGRE的学习资源简单总结
  17. java的基本数据类型有哪些
  18. ecshop图片自动本地化插件,ECSHOP下载商品图片,ECSHOP商品详情远程图片,ecshop商品远程图片保存,ecshop图片自动本地化插件,商品图片本地化
  19. 【数值计算】期末综合大作业
  20. 互联网公司常用的DevOps 工具,你都认识吗?

热门文章

  1. 面包屑效果(element + vue)
  2. 3.3 伴随矩阵法求逆矩阵
  3. iphone 程购买实现
  4. 2017年Q1中国服务器市场研究报告
  5. leetcode-拓扑排序
  6. jetson nano风扇控制、远程控制和远程桌面
  7. 2023秋招--游卡--游戏客户端--二面面经
  8. 树莓派的一生:树莓派十年
  9. 怎么修改数据库服务器名字,修改SQL Server数据库服务器名字
  10. 动车报销凭证怎么取?高铁票的报销凭证在哪里取?