第十六天笔记
JavaScript
基础语法
- 区分大小写 JavaScript是一种区分大小写的语言 JavaScript的关键字 变量名 函数名 以及任何其他的标识符必须适应一致的大小写形势
var wolongquanduan = '卧龙前端'; console.log(wolongqianduan); var Wolongqianduan = 'Wolongqianduan'; console.log(Wolongqianduan); var WOLONGQIANDUAN = 'WOLONGQIANDUAN'; console.log(WOLONGQIANDUAN);
- 空格和换行 并不是JavaScript的语法内容 - 可有可无 (建议使用) 将代码书写的更加整洁 美观 更有可读性
- 可选的分号 分号 可选项 - JavaScript 语法并不是强制要求的 多个语句在一行编写时 分号必须存在 作用 - 表示一句话结束
- 变量的定义 变量的定义的语法结构: 语法结构 - var 变量名称 = 变量的值; JavaScript的变量是弱类型的(松散类型) 定义变量时 初始化值 - 并不清楚变量的值的类型 只有在为变量初始化值 - 才知道改变了的值的类型
/* 1.定义变量 并初始化值 */ var v = '卧龙学苑';/* 定义变量 - 变量的定义 并且初始化值 */ console.log(v);/* 调用变量 */ /* 2.定义变量 但是没有初始化值 */ var v1; /* 只定义 没有初始化 */ console.log(v1);/* 结果为 undefined(未定义)*/ v1 = '卧龙学苑' ;/* 初始化值(赋值)*/ console.log(v1); /* 3.多个变量同时定义 - 变量定义之间使用逗号分隔 */ var v2 = 100, v3; console.log(v2);//100 console.log(v3);//undefined
- 重复的定义 JavaScript中重复定义变量 - 语法是允许的 重复定义时 - 先将之间的变量在内存的空间销毁 再创建
- 重复的赋值 赋值语句可以将一个含有变量的自身的代数式的值再赋给这个变量
var v = '卧龙学苑'; console.log(v);//卧龙学苑 v = 100; console.log(v);//100
- 遗漏的定义 变量没有定义 - 之间调用 结果 - (报错)变量名 id not defined 原因 - 该变量没有定义 只定义变量 - 但不初始化值 结果 - (不报错)输出结果为 undefined
- 常量的定义 ECMA5之前的版本 语法并没有提供常量的定义 - 只能定义变量 认为规定定义的是常量 但是使用的语法结构依旧是变量的语法 ECMA5及之后的版本 提供了定义常量的语法 - 确认定义 值就不能再更改 const 常量名 = 值; 重复赋值 - 报错 TypeError: Assignment to constant variable 重复定义 (常量或变量) - 报错 SyntaxError: Identifier 'C1' has already been declared 定义变量与常量的名称 定义变量名称时 - 全小写或者大小写混合 定义常量名称时 - 全大写
var C = 100;//语法上是变量的 人为规定是常量 C = 200; //语法上是变量 const C1 = 100; //不能重复赋值 //C1 = 200; //重复定义为常量 //const C1 = 200; //重复定义为变量 var C1 =200;
- 定义变量或常量 JavaScript是脚本语言 - 语法规则相对灵活(不建议) 定义变量或常量时 允许不写修饰符(var或者const) 没有var或者const关键字时 定义的默认为变量
- 常量定义的问题 常量的定义 - 必须定义时 同时初始化值 如果只定义而不初始化 - 报错 SyntaxError: Missing initializer in const declaration
- 变量与常量的区别 变量 1.定义变量使用var关键字 2.定义变量 可以使用小写 3.变量允许重复定于或重复赋值 4.变量只允许定义 但不初始化 5.变量的值是允许改变的 常量 1.定义常量使用const关键字 2.定义常量使用大写 3.常量不允许重复定义或重复赋值 4.常量必须定义初始化值 5.常量的值不允许改变
数据类型概况
-
概括
在JavaScript代码中 能够表示并操作的类型称之为数据类型 数据类型分为(原始类型 特殊类型) (包装类型 引用类型) 原始类型又成原始值 是直接代表JavaScript语言实现的最底层的数据 分别为boolean类型 number类型 string类型三种. 1.boolean类型 整数(lntger)和浮数点(小数丨float或double) JavaScript并不区分整数与浮数点 a.变量的定义并初始化 b.字面量或直接量定义数字值 2.number类型 number类型是指数字 JavaScript不区分整数类型和浮点类型 a.整数类型:包括负整数 0 和正整数 b.浮点类型:表示小数 JavaScript中的随意数字均可用浮点类型表示 进制有:八进制 十进制 十六进制 3.string类型 string类型用于表示由零或多个16位Unicode字符组成的字符序列 被称为字符串 字符串可以由双引号("")或单引号('')表示浮点类型
var num1 = 0.1;console.log(num1);// 浮点类型- '.1'表示'0.1'的含义 -> 不推荐使用var num2 = .1;console.log(num2);var num3 = 10.1;console.log(num3);// 浮点类型 -'.0'表示为整数var num4 = 10.0;console.log(num4);// 浮点类型 - '.'表示为整数var num5 = 10.;console.log(num5);
- 浮点类型的计算误差 number类型中的小数 在计算时都可能出现误差 并不是所有的小数计算都出现误差 小数的计算时 注意结果是否出现误差 通过数字值的换算 将其转换成整数进行计算 再将结果换算为小数
- NaN(Not a Number) 即非数值 是一个特殊的数值 特点: 任何涉及NaN的操作都会返回NaN NaN与任何值都不相等 包括NaN本身
var num = Number('卧龙学苑');//将一个普通文本内容转换成number类型 console.log(num);//当前这个值不是一个数字值 console.log(10 == 10);//true console.log(NaN == NaN);//false
- 无穷大 1.正无穷大 2. 负无穷大 无穷大与另一个无穷大是不相等的 无穷大减去另一个无穷大不等于零
var num = 98/0; console.log(num);//Infinity(无穷)
- 字符串 string类型 - JavaScript的字符穿就是由单引号或者双引号包裹 在JavaScript中单引号和双引号是没有区别的 - 建议使用单引号 文本本身需要单引号或双引号时 1.如果需要的是双引号 字符串只能使用单引号 2.如果需要的是单引号 字符串只能使用双引号
-
转义字符
在控制台输出"xxxyyy" 第一行输出"xxx" 第二行输出"yyy"console.log('xxx\nyyy'); console.log('100');//string类型
-
运算符
typeof运算符 typeof运算符 - 判断原始类型 语法结构 - typeof 变量名称 结果 - 元素类型的名称(string类型)var num = 100;var boo = true;var str = '卧龙学苑';console.log(typeof num);//numberconsole.log(typeof boo);//booleanconsole.log(typeof str);//stringvar result = typeof num;console.log(result);//numberconsole.log(typeof result);//string
instanceof运算符
instanceof运算符用于判断引用类型(包装类型)console.log(typeof str);//objectconsole.log(typeof num);//objectconsole.log(typeof boo);//objectconsole.log(str instanceof String);//true
typeof运算符与instanceof运算符的区别
typeof 运算符 1.用于判断原始类型 2.语法结构不同 -> typeof 变量名称 3.得到结果不同 -> 原始类型的名称 instanceof运算符 1.用于判断引用类型(包装类型) 2.语法结构不同 ->变量名称 instanceof引用类型名称 3.得到结果不同 ->布尔类型的值 (true或false) -
特殊类型
undefined - 在JavaScript表示为空的含义 如果一个变量的值等于undefined -> 变量是存在的 但没有值 undefined 类型中只存在一个值(undefined) 得到undefined值的情况如下: 定义变量时 只声明 而不初始化 -> undefined 定义变量时 初始化值为 undefined -> undefined 注意 - 得到undefined值的情况不止以上两种var v;console.log(v);var c = undefined;console.log(c);console.log(typeof v);//undefined - 类型名称
null
作用 - 用于将指定变量从内存中进行释放 实现 - 将指定变量的值赋值为 null null类型中只存在一个值 (null)var v = null;//以下结果是错误的console.log(typeof v);//object//console.log(v instanceof Null);//结果为报错console.log(v instanceof Object);//false