话不多说,让我们正式开启 JS 的学习之旅!

认识 JS

你可以简单理解成 JavaScript 是因特网上最流行的脚本语言,它存在于全世界所有的Web浏览器中,能够增强用户与Web站点和Web应用程序之间的交互。

比如在静态页面上做出的绝大多数动画效果(轮播banner、跑马灯),交互行为(表单验证),都是由JavaScript编写而成的。
复制代码

除此以外,你还需要了解JavaScript是由ECMAScript、文档对象模型(Document Object Model: DOM)、浏览器对象模型(Browser Object Model:BOM)三部分构成。

ECMAScript:它描述了该语言的语法和基本对象;
DOM:描述了处理网页内容的方法和接口,通过DOM,可以访问所有的HTML元素,连同它们所包含的文本和属性,可以对其中的内容进行修改和删除,同时也可以创建新的元素;
BOM:描述了与浏览器进行交互的方法和接口,BOM提供了独立于内容而与浏览器窗口进行交互的对象,例如可以移动,调整浏览器窗口大小的window对象,可以用于导航的location对象和history对象,可以获取浏览器,操作系统与用户屏幕信息的navigator与screen对象,可以使用document作为访问HTML文档的入口,管理框架的frames对象等;
复制代码

JS 引入

外部引入:

<script src="引用的代码路径"></script>
复制代码

内嵌标签:

<script>相关代码</script>
复制代码

示例:

<!DOCTYPE html>
<html lang="en">
<head><meta charset="UTF-8"><meta name="viewport" content="width=device-width, initial-scale=1.0"><meta http-equiv="X-UA-Compatible" content="ie=edge"><title>Document</title>
</head>
<body><!--写在html结构的 尾部--><script src="引用的代码路径"></script><script>// 相关代码</script>
</body>
</html>
复制代码
<script></script>可以有多个,按顺序执行。
通常采用外部引入的方式,确保 结构、样式、行为相分离。
复制代码

JS 变量

变量(variable):程序可操作的内存空间,程序运行期间可以进行改变。

简单理解成:存储数据的容器。比如要在很多地方使用同一个字面量,不如事先定义一个变量,用来储存字面量。
复制代码

命名规则

1.字母、数字、_、$ 组成
2.不能以数字开头
3.不能是js中的关键字和保留字
4.严格区分大小写
5.驼峰命名
6.见名知意
复制代码

声明(定义)变量

通过 var 关键字声明变量,所谓关键字,就是有特殊功能的小词语。关键字后面一定要有空格隔开。
等号表示赋值,将等号右边的值,赋给左边的变量。
复制代码
// 声明单一变量
var a;// 声明变量并赋值(初始化)
// 推荐
var b = 20;// 声明多个变量
var c = 100,d = 200,str = 'hello thewall';// 变量要先声明 再使用 如果未声明就使用 控制台会报错
console.log(f);
复制代码

JS 数据类型

数据类型: 基本数据类型(原始数据类型) 和 复杂数据类型(引用数据类型)

基本数据类型:存放在 栈内存(stack) 中,可以直接访问。

String

字符串需要使用引号引起来,使用双引号或单引号都可以,但是不要混着用。
引号不能嵌套:双引号里不能再放双引号,单引号里不能再放单引号。但是单引号里可以嵌套双引号。
复制代码

Number

整数和浮点数(小数)
由于内存限制,最大值:Number.MAX_VALUE,这个值为: 1.7976931348623157e+308,Number.MIN_VALUE,这个值为: 5e-324
无穷大(正无穷):Infinity,无穷小(负无穷):-Infinity
NaN:是一个特殊的数字,表示Not a Number,非数值。
isNaN() :任何不能被转换为数值的值,都会让这个函数返回 true。
复制代码
console.log("abc" / 18);  //结果是NaN
console.log("abc" * "abcd"); //按理说,字符串相乘是没有结果的,但如果你非要让JS去算,它就一定会给你一个结果。结果是NaNisNaN(NaN);// true
isNaN("blue"); // true
isNaN(123); // false
复制代码

Boolean

true 和 false。主要用来做逻辑判断
复制代码

Undefined

声明了一个变量,但是没有赋值,此时它的值就是undefined。
复制代码

Null

专门用来表示一个为空的对象
复制代码

Symbol

// String类型 字符串类型
var str = '不凡学院,分享知识和快乐';
var str = '' //空字符串// Number类型  数字类型
var age = 20;// Boolean类型 true 和 false 两个值
var sex = false;// Undefined 只声明,未赋值的变量
var a;  // a的数据类型为undefined// null 空
var b = null;
// Symbol ES6新增,按下不表
复制代码

引用数据类型:存放在 堆内存(heap) 中,变量在栈内存中实际保存的是一个指针,这个指针指向堆内存当中对应的数据。

Object
Array
Function
这里边,内置对象function、Array、Date、RegExp、Error等都是属于Object类型
复制代码
// Array 数组
var arr = [1,2,'hello',undefined,true,{age:30},[3,4]];// Function 函数
function wheel () {}// Object 对象
var person = {name:'张三',age:30,like:['篮球','足球','看书']
}
复制代码

栈内存和堆内存的区别

var a = 10;
var b = a; // 相当于 在栈内存中 开辟了内存空间 b 存值 为 10,和 a 没有关系了
a = 20 // 当修改 a 的值时,b 并不会受到影响.
console.log(b);  // 10var obj1 = {name:'张三'
}
// 在栈内存中开辟了内存空间 obj1 ,存放了指向堆内存中 对象{name:'张三'} 的指针(地址)
var obj2 = obj1;  // 相当于在栈内存中开辟了内存空间obj2 ,存放了指向堆内存中对象{name:'张三'} 的指针// 修改一
obj1.age = 30;
// 相当于修改了 堆内存中保存的数据,obj2的指针 也指向这个对象
console.log(obj2); // {name:'张三',age:30}// 修改二
obj1 = {name:'李四'
}
// 相当于 将堆内存存放的{name:'李四'}的引用地址,赋值给了变量obj1 ,并不影响obj2的指针指向的对象
console.log(obj2); // {name:'张三'}
复制代码

数据类型判断

typeof 变量名(表达式)
isNaN(变量名)
复制代码

数据类型的转换

------>String类型

var a = 123;
// 1.通过 变量+''
console.log(a +''); // 转换成String类型// 2.toString()
// 该方法不会影响到原变量,它会将转换的结果返回。当然我们还可以直接写成a = a.toString(),这样的话,就是直接修改原变量。
// 需要注意的是 null 和 undefined 没有toString()方法,所以不能使用
console.log(a.toString()// 3.String()
console.log(String(null) // 'null'
console.log(String(undefined) // 'undefined'
复制代码

------>Number类型

Number()

字符串--->数字

1.字符串若是纯数字,转换为数字
2.字符串中有非数字内容,转换为NaN
3.空字符串或者全是空格的字符串,转换为0
复制代码

布尔值--->数字

true 为 1
false 为 0
复制代码

其他情况

null 为 0
undefined 为 NaN
复制代码

parseInt()

parseInt()的作用是将字符串中的有效的整数内容转为数字。
复制代码
// 1.只保留字符串最开头的数字,后面的中文自动消失。例如:console.log(parseInt("2019准备写6篇文章"));  //打印结果:2019console.log(parseInt("2019.04在掘金上写了6篇文章"));  //打印结果仍是:2019  (说明只会取整数)console.log(parseInt("aaa2019.04在公众号上写了6篇文章"));  //打印结果:NaN// 2.自动带有截断小数的功能:取整,不四舍五入。var a = parseInt(5.8) + parseInt(4.7);
console.log(a); // 9var a = parseInt(5.8 + 4.7);
console.log(a);  //10// 3.如果对非String使用parseInt()或parseFloat(),它会先将其转换为String然后再操作。var a = true;
console.log(parseInt(a));  //打印结果:NaN (因为是先将a转为字符串"true",然后然后再操作)var b = null;
console.log(parseInt(b));  //打印结果:NaN  (因为是先将b转为字符串"null",然后然后再操作)var c = undefined;
console.log(parseInt(c));  //打印结果:NaN  (因为是先将b转为字符串"undefined",然后然后再操作)var d = 168.23;
console.log(parseInt(d));  //打印结果:168  (因为是先将c转为字符串"168.23",然后然后再操作)// 4.带两个参数时,表示进制转换。
复制代码

parseFloat()

parseFloat()的作用是:将字符串转换为浮点数。
复制代码
// parseFloat()可以获得有效的小数部分。
var a = '123.456.789px';
console.log(parseFloat(a)); // 打印结果:123.456
复制代码

------>Boolean类型

Boolean()

数字 --> 布尔。除了0和NaN,其余的都是true。
字符串 ---> 布尔。除了空串,其余的都是true。
null和undefined都会转换为false。
情况四:对象也会转换为true。
复制代码

到这里,就已经简单介绍了JS最基本的变量和数据类型,但这并不是全部,和其相关的知识点还有很多,暂且按下不表(毕竟只是带你入门),之后的事?当然要靠自己去不断探索学习了!

转载于:https://juejin.im/post/5cbd96446fb9a0321c45d800

ES5入门 — 引入、变量、数据类型相关推荐

  1. bool类型头文件_[C++基础入门] 2、数据类型

    点击上方 蓝字 关注我呀! [C++基础入门] 2.数据类型 文章目录 2 数据类型 2.1 整型 2.2 sizeof关键字 2.3 实型(浮点型) 2.4 字符型 2.5 转义字符 2.6 字符串 ...

  2. java短除法获取二进制_Java十四天零基础入门-Java的数据类型介绍

    不闲聊!!!不扯淡!!!小UP只分享Java相关的资源干货 本章节目标: 理解数据类型的作用.Java中包括哪些数据类型?常见的八种基本数据类型都有哪些?会用八种基本数据类型声明变量?什么是二进制?原 ...

  3. JS-概述-基本语法-变量-数据类型

    概述-基本语法-变量-数据类型 1 JavaScript 概述 ① JavaScript 的特点 JavaScript 是一门动态的,弱类型的,解释型的,基于对象的脚本语言. 动态: 程序执行的时候才 ...

  4. Python入门篇-高级数据类型集合(set)和字典(dict)

    Python入门篇-高级数据类型集合(set)和字典(dict) 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. 一.集合(set) 1>.集合的特点 约定set 翻译为集合c ...

  5. java字符常量括_Java常量 变量 数据类型

    常量分为两种: 1:字面值常量: A: 字符串常量,需要双引号括起来     "helloword" B:整数常量      10 C :小数常量      8.9 D:字符常量, ...

  6. 查看scala变量数据类型_Scala文字,变量和数据类型| Scala编程教程

    查看scala变量数据类型 1)Scala数据类型 (1) Scala Data Types) Scala has the same set of data types as in Java. The ...

  7. python变量 数据类型 列表 元组 字典

    python基础语法2 变量 数据类型与类型转换 列表 添加列表元素 修改元素 删除列表元素 组织列表 创建数值列表 操作列表 元组 元组转列表 字典 创建字典 列表取值 字典删除增加修改 变量 变量 ...

  8. JavaScript(一)—— 初识JavaScript/注释/输入输出语句/变量/数据类型

    本篇为 JavaScript 系列笔记第一篇,将陆续更新 文章目录 一.初识 JavaScript 1. JavaScript 是什么 2. JavaScript 的作用 3. HTML.CSS 和 ...

  9. 获取变量数据类型(JS)

    获取变量数据类型(JS) <!DOCTYPE html> <html lang="en"><head><meta charset=&quo ...

最新文章

  1. 词向量, BERT, ALBERT, XLNet全面解析(ALBERT第一作者亲自讲解)
  2. iOS字体换算 PS的字体大小 =iOS上字体大小
  3. 一张图看懂智联车管理云平台
  4. c++ 线程池_JAVA并发编程:线程池ThreadPoolExecutor源码分析
  5. 二维数组作数据源填充到repeater
  6. stderr和stdout详细解说
  7. 【免费毕设】基于PHP的产品报价系统的设计与开发(源代码+论文)
  8. React 性能优化技巧总结
  9. Atitit 人工智能体系树 常用技术 2. 知识图谱 知识处理系统 2 知识发现 知识图谱 1. 1.NLP 2 自然语言处理文本处理 1.1. 语言理解 分词 2 抽取 (压缩文
  10. ie不能加载flash html,IE浏览器无法显示Flash怎么解决?解决的方法介绍
  11. Word2010邮件合并(附带照片)
  12. Android Apk编译的apk安装失败解决
  13. doxygen html chm,使用Doxygen生成全中文的chm帮助文档
  14. MLDonkey Web set
  15. 适合送女朋友的情人节礼物?畅销火热的好物分享
  16. 防止电脑辐射的有效方法
  17. XMU 1611 刘备闯三国之卖草鞋 【贪心】
  18. Spring系列:字节跳动+腾讯+华为+小米+阿里面试题分享
  19. 谁是幕后英雄?笔记本代工关系大揭秘
  20. 学习使用Postman+Newman

热门文章

  1. 数据为王的时代 大数据对消费金融的影响
  2. SAN交换机Zone配置详解及最佳实践
  3. 搞微信红包营销推广的时候,如何防止被刷红包?
  4. SAP中成本核算时提示没有作业类型控制记录的实例
  5. 什么是产品思维?优秀产品经理应该培养的九大思维
  6. Portraiture5.0滤镜插件中文升级版本下载及功能介绍
  7. c语言打印五角星图案设计报告,C语言课设绘制态五角星.doc
  8. SNMP MIB Browser
  9. 给VMware kali 装中文输入法
  10. 新品速看丨创新微MinewSemi正式推出GNSS高精度卫星定位导航模块