01JavaScript基础语法
2020-04-23 09:19
876 查看
JavaScript发展历史(JS)
1. Netscape(网景公司) 发明了 JavaScript 2. liveScript ==> javaScript ==> ECMAscript(ECMA:欧洲计算机制造商协会) 3. - 借鉴C语言的基本语法; - 借鉴Java语言的数据类型和内存管理; - 借鉴Scheme语言,将函数提升到"第一等公民"的地位; - 借鉴Self语言,使用基于原型(prototype)的继承机制。
JavaScript能干什么
1. 常见的网页效果【表单验证,轮播图...】 2. 与H5配合实现游戏【水果忍者: http://www.jq22.com/demo/html5-fruit-ninja/】 3. 实现应用级别的程序【http://naotu.baidu.com】 4. 实现统计效果【http://echarts.baidu.com/examples/】 5. 地理定位等功能【http://lbsyun.baidu.com/jsdemo.htm#i4_5】 6. 在线学编程【https://codecombat.163.com/play/】 7. js可以实现人工智能【面部识别】
JavaScript的组成
1. ECMASCRIPT: 定义了javascript的语法规范,描述了语言的基本语法和数据类型 2. BOM (Browser Object Model): 浏览器对象模型 - 有一套成熟的可以操作浏览器的 API,通过 BOM 可以操作浏览器。比如: 弹出框、浏览器跳转、获取分辨率等 3. DOM (Document Object Model): 文档对象模型 - 有一套成熟的可以操作页面元素的 API,通过 DOM 可以操作页面中的元素。
JavaScript代码的书写位置
- 行内式
- 内嵌式
- 外链式
行内式 JS 代码(不推荐)
写在标签上的 js 代码需要依靠事件(行为)来触发
<a href="javascript:alert('我是一个弹出层');">点击一下试试</a> <div onclick="alert('我是一个弹出层')">点一下试试看</div>
内嵌式 JS 代码
内嵌式的 js 代码会在页面打开的时候直接触发
<script type="text/javascript"> alert('我是一个弹出层') </script> <!-- 注:script 标签可以放在 head 里面也可以放在 body 里面 -->
外链式 JS 代码(推荐)
外链式 js 代码只要引入了 html 页面,就会在页面打开的时候直接触发。
新建一个 .js 后缀的文件,在文件内书写 js 代码,把写好的 js 文件引入 html 页面。
<!-- 我是一个 html 文件 --> <!-- 通过 script 标签的 src 属性,把写好的 js 文件引入页面 --> <script src="index.js"></script> <!-- 一个页面可以引入多个 js 文件 --> <script src="index1.js"></script> <script src="index2.js"></script> <script src="index3.js"></script>
JS 中的注释
单行注释和多行注释
// 我是一个单行注释 /* 我是一个多行注释 */
变量(重点)
定义变量及赋值
// 定义一个变量 var num; // 给一个变量赋值 num = 100; // 定义一个变量的同时给其赋值 var num2 = 200;
注意: 一个变量名只能存储一个值 当再次给一个变量赋值的时候,前面一次的值就没有了 变量名称区分大小写(JS 区分大小写)
变量的命名规则和命名规范
- 规则: 必须遵守的,不遵守就是错 一个变量名称可以由 数字、字母、英文下划线(_)、美元符号($) 组成
- 严格区分大小写
- 不能由数字开头,不要使用中文汉字命名
- 不能是 保留字 或者 关键字
- 不要出现空格
-
变量名尽量有意义(语义化)
数据类型(重点)
- 基本数据类型
- 复杂数据类型
基本数据类型
- 数值类型(number)
一切数字都是数值类型(包括二进制,十进制,十六进制等)
NaN(not a number),一个非数字 - 字符串类型(string)
被引号包裹的所有内容(可以是单引号也可以是双引号) - 布尔类型(boolean)
只有两个(true 或者 false) - null类型(null)
只有一个,就是 null,表示空的意思 - undefined类型(undefined)
只有一个,就是 undefined,表示没有值的意思
复杂数据类型
- 对象类型(object)
- 函数类型(function)
- …
判断数据类型
使用 typeof 关键字来进行判断
var s1 = 'abcdefg'; console.log(typeof(s1));
注意: typeof null //"object" typeof typeof 任意类型 // 结果都是string++
判断一个变量是不是数字
使用 isNaN 方法
var n1 = 100; console.log(isNaN(n1));
数据类型转换
其他数据类型转成数值
- Number(变量)
- 可以把一个变量强制转换成数值类型
- 可以转换小数,会保留小数
- 可以转换布尔值
- 遇到不可转换的都会返回 NaN
- parseInt(变量)
- 从第一位开始检查,是数字就转换,知道一个不是数字的内容
- 开头就不是数字,那么直接返回 NaN
- 只能保留整数
- parseFloat(变量)
- 从第一位开始检查,是数字就转换,直到一个不是数字的内容
- 开头就不是数字,那么直接返回 NaN
- 认识一个小数点
- 除了加法以外的数学运算
- 运算符两边都是可运算数字才行
- 如果运算符任何一遍不是一个可运算数字,那么就会返回 NaN
- 加法不可以用
其他数据类型转成字符串
- 变量.toString()
- 有一些数据类型不能使用 toString() 方法,比如 undefined 和 null
- String(变量)
- 所有数据类型都可以
- 使用加法运算
- 在 JS 里面,+ 有两个含义。
字符串拼接: 只要 + 任意一边是字符串,就会进行字符串拼接。
加法运算:只有 + 两边都是数字的时候,才会进行数学运算。
其他数据类型转成布尔
- Boolean(变量)
- 在 js 中,只有 ‘’、0、null、undefined、NaN,这些是 false,其余都是 true
运算符
- 数学运算符
- 赋值运算符
- 比较运算符
- 逻辑运算符
- 自增自减运算符(一元运算符)
数学运算符
-
+
-
只有符号两边都是数字的时候才会进行加法运算
- 只要符号任意一边是字符串类型,就会进行字符串拼接
-
-
-
会执行减法运算
- 会自动把两边都转换成数字进行运算
-
*
-
会执行乘法运算
- 会自动把两边都转换成数字进行运算
-
/
-
会执行除法运算
- 会自动把两边都转换成数字进行运算
-
%
-
会执行取余运算
- 会自动把两边都转换成数字进行运算
赋值运算符
-
=
-
就是把 = 右边的赋值给等号左边的变量名
- var num = 100
- 就是把 100 赋值给 num 变量
- 那么 num 变量的值就是 100
-
+=
var a = 10; a += 10; console.log(a); //=> 20 a += 10 等价于 a = a + 10
- -=
var a = 10; a -= 10; console.log(a); //=> 0 a -= 10 等价于 a = a - 10
- *=
var a = 10; a *= 10; console.log(a); //=> 100 a *= 10 等价于 a = a * 10
- /+
var a = 10; a /= 10; console.log(a); //=> 1 a /= 10 等价于 a = a / 10
- %=
var a = 10; a %= 10; console.log(a); //=> 0 a %= 10 等价于 a = a % 10
比较运算符
- 运算结果是布尔值
- ==
-
比较符号两边的值是否相等,不管数据类型
- 1 == ‘1’ // true
- NaN == NaN // false
- ===
-
比较符号两边的值和数据类型是否都相等
- 1 === ‘1’ //false 数据类型不一样
== 近似等于 : 会发生隐式数据类型转换; 性能消耗比较大。 === 绝对等于 : 编程之中推荐使用绝对等于; 优先比对数据类型。 var str = "1"; var num = 1; var res = str == num; // true 小重点 : 赋值运算符的权重最低,所以先算右边==,再进行=运算
- != (近似不等于)
-
比较符号两边的值是否不等
- 1 != ‘1’ //false 值相等
- !== (绝对不等于)
-
比较符号两边的数据类型和值是否不等
- 1 !== ‘1’ //true 数据类型不一样
- >=
-
比较左边的值是否 大于或等于 右边的值
- 1 >= 1 true
- 1 >= 0 true
- 1 >= 2 false
- <=
-
比较左边的值是否 小于或等于 右边的值
- 1 <= 2 true
- 1 <= 1 true
- 1 <= 0 false
- >
-
比较左边的值是否 大于 右边的值
- 1 > 0 true
- 1 > 1 false
- 1 > 2 false
- <
-
比较左边的值是否 小于 右边的值
- 1 < 2 true
- 1 < 1 false
- 1 < 0 false
//会发生隐式数据类型转换; var num1 = 1 ; var num2 = "2"; console.log(num1 > num2);// false; // 字符串大小比对; var num1 = "1" ; var num2 = "2"; console.log(num1 > num2); // false; // * 特殊情况; // 字符串会转换成 ASCII 之后再进行比对。 var str1 = "一"; var str2 = "丁"; console.log(str1 > str2)//false JavaScript是一个弱类型语言 : 隐式数据类型转换是常态! ** >=和<=也会发生隐式数据类型转换 **
逻辑运算符
- &&
-
进行 且 的运算
- 符号左边必须为 true 并且右边也是 true,才会返回 true
- 只要有一边不是 true,那么就会返回 false
- true && true true
- true && false false
- false && true false
- false && false false
- ||
-
进行 或 的运算
- 符号的左边为 true 或者右边为 true,都会返回 true
- 只有两边都是 false 的时候才会返回 false
- true || true true
- true || false true
- false || true true
- false || false false
- !
-
进行 取反 运算
- 本身是 true 的,会变成 false
- 本身是 false 的,会变成 true
- !true false
- !false true
自增自减运算符(一元运算符)
- 自增运算 : 元 | 目 : 参与运算的数字;
- ++ ( 自增运符==>变量才有自增 )
-
程序运行规则 : 从上到下,从左到右;
- 进行自增运算
- 分成两种,前置++ 和 后置++
//前置++,会先把值自动 +1,在返回 var a = 10; console.log(++a); //会返回 11,并且把 a 的值变成 11
//后置++,会先把值返回,在自动+1 var a = 10; console.log(a++); // 会返回 10,然后把 a 的值变成 11
-
–
-
进行自减运算
- 分成两种,前置-- 和 后置–
- 和 ++ 运算符道理一样
//前置-- var a = 10; console.log(--a); // 会返回 9,并且把 a 的值变成 9 var k=1; var sum = ++k + k++ + ++k + k; // 2 + 2 + 4 + 4 = 12 console.log( k );//4 console.log( sum );//12
//后置--,会先把值返回,在自动-1 var a = 10; console.log(a--); // 会返回 10,然后把 a 的值变成 9
- 点赞
- 收藏
- 分享
- 文章举报
相关文章推荐
- javaScript基础语法01-上下2部分
- JavaScript基础精华01(变量,语法,数据类型)
- JavaScript基础精华01(变量,语法,数据类型)
- 【JavaScript 基础】01 基础语法
- PHP学习笔记01——基础语法
- javaScript---基础语法1(EMCAScript)
- 【C#基础】【语法03】课后作业题 01-06
- JavaScript入门基础01
- 01Python基础语法
- Java语言基础{Java_se(01)}-搭建Java开发环境-环境变量(环境配置)-Java的基本语法-Java的三大注释-关键字和保留字-Java中的语言分隔符
- JavaScript基础学习笔记(一)——入门、语法、变量、数据类型
- 01.Lua笔记_基础语法部分
- JavaScript 的基础语法 使用
- javascript基础语法&4
- JavaScript入门<1>基础语法
- javascript基础语法规范
- javascript基础语法
- 黑马程序员---java基础---02java基础语法(01)
- JavaScript(基础语法)
- javascript中正则表达式的基础语法