一、概述
JavaScript的作用
-
表单动态校验(js的最初目的)
-
网页特效
-
服务端开发(Node.js)
-
桌面程序(Electron)
-
app(Cordova)
-
控制硬件--物联网(Ruff)
-
游戏开发(cocos2d-js) js的组成 javascript语法:ECMAScript
-
ECMAScript和javaScript的关系:前者是后者的规格,后者是前者的一种实现。
页面文档对象模型:DOM
- 提供操作html文档中html元素的能力
浏览器对象模型:BOM
- 提供操作浏览器的能力 javascript书写分为:行内式、内部式、外链式
二、变量
什么是变量
通俗:变量是用于存放数据的容器,我们通过变量获取数据,
本质:变量是程序在内存中申请的一块用来存放数据的空间
变量初始化---->申请变量并赋值(只声明不赋值导致结果undefined)
三、数据类型
什么是数据类型
是变量指向的存储单元中存放的数据的类型 ,而数据类型可以分为简单数据类型和复杂数据类型。
| 简单数据类型 | 说明 | 默认值 |
|---|---|---|
| number | 数字型 | 0 |
| boolean | 布尔类型 | false |
| string | 字符串类型 | '' |
| undefined | var a;声明了变量a但没有给值,此时a=undefined | undefined |
| null | var a =null; 声明 了变量a 为空值 | object |
简单类型又叫做基本数据类型或者值类型,复杂类型又叫做引用类型
引用类型:通过new关键字创建的对象,如Object 、Array、Date等。
要掌握关于数据类型检测、数据类型转换、运算符
数据类型检测:
简单数据类型: 判断 typeof 判断非数字isNaN 检查对象数据类型:instanceof
数据类型转换
- 转字符型
// 1.把数字型转换为字符串型 变量.toString()
var num = 10;
var str = num.toString();
console.log(str);
console.log(typeof str);
// 2.利用String(变量)
console.log(typeof String(num));
// 3. 利用+ 拼接字符串的方法实现转换效果 隐式转换
console.log(typeof(num + ''));
-
转数字型
// 1.parseInt(变量) 可以把字符型的转换成数字型, 得到的是整数 console.log(parseInt('3.14')); //3取整 console.log(parseInt('120px')); //从左往右按位转换,遇到非数字值会停止。 // 2.parseFloat(变量) 可以把字符型的转换为数字型, 得到的是小数 console.log(parseFloat('3.14')); //3.利用Number(变量) var str='123'; console.log(Number(str)); //4.利用算数运算符 - * / % 隐式转换 console.log('12'-0); //12案例:
//计算年龄 var year =promt('请输入出生年份:'); var age=2021-year; //year取过来的是字符串型 但这里有隐式转换 alert('今年'+age+'岁了');-
转布尔类型
console.log(Boolean('')); //false代表空、否定的值会被转换为false,如''、0、NaN、null、undefined.
-
运算符
注意:=== 和 ==的区别, == 表示先转换类型(自动)再比较。
=== 先判断数据类型,(类型不同时,不会自动转换类型)如果不是同一类型直接为false。如果类型相同,再判断其值,如果值也相同则返回true,否则返回false。表示的是绝对的相等。
特殊情况:false && false 当左边为false时,右边不参与运算 =>短路运算。【面试题】
console.log(true && alert(1)) //后面的语句会执行
console.log(false && alert(1)) //后面的语句不执行
注:关系运算符的比较,变量不能写在右边。