JS基础知识(一)
JavaScript (一)基础 部分
JS是一门弱类型脚本语言(解释执行)
脚本语言:弥补编译语言的不足而存在的,作为补充语言,不用编译
弱类型:弱类型语言也称为弱类型定义语言。与强类型定义相反。像vb,php等就属于弱类型语言·
解释执行:一行一行解析,一行一行执行。
编译执行:把代码编译成CPU认识的语言文件,然后整体的执行,执行速度大于解释执行语言。
JavaScript 作用
- 验证表单(以前网速较慢,通过JS完成表单验证比较快)。
- 页面特效(源生JS写PC端的网页特效)。
- 移动端web以及APP开发。
- 异步和服务器进行交互(AJAX)。
- 服务器端开发(Node.JS)。
前端组成(前段标准三层结构和JS组成)
设计原则:结构、样式、行为分离
- HTML:负责页面结构
- CSS:负责页面样式
- JavaScript:负责控制网页行为
JS组成
- ECMAScript:script语法标准。
- DOM:Document Object Model(文档对象模型)。
- BOM:Browser Object Model(浏览器对象模型)。
JS的输出语句
console.log()在控制台打印内容
alert()弹窗显示内容
document.write()在页面书写内容
JS中的变量
命名规则:
- 变量命名必须以字母或是下标符号
”_”
或者”$”
为开头。 - 变量名长度不能超过255个字符。
- 变量名中不允许使用空格,首个字不能为数字。
- 不用使用脚本语言中保留的关键字及保留符号作为变量名。
- 变量名区分大小写。(javascript是区分大小写的语言)。
- 汉语可以作为变量名。但是不建议使用!!!(low)。
变量使用
不建议使用跨类型定义。如
var age='汉字', age=88
。由字符串跨类型到数字类型
变量分类
简单数据类型:String(字符串)、Number(数字)、Boolean(布尔)、undefined()、null()
复杂数据类型:Object、function、Array、Date、RegExp、Error
字面量
固定的值,从字面上理解其含义
var age=18
Number
进制
二进制、八进制、十进制、十六进制、三十二进制
浮点型
因为精度丢失问题,所以不判断计算后的两个浮点数是否相等
NaN非数值(Not a Numbe的简写。)
- undefined和任何数值计算都为NaN
- NaN与任何值都不相等。
isNaN()任何不能被转换为数值的值都会致使这个函数返回true
- isNaN(NaN)=====>>>>true;
- isNaN(“blue”)=====>>>>true;
- isNaN(123)=====>>>> false;
String
- 字面量定义方式,单引号,双引号,可用.length查看具体字符长度
字符串不可变,在内存中不会立刻消失,只能二次赋值,原有的字符在一定时间内,被垃圾回收机制回收*
字符串拼接:如果两个变量都是字符串,无论是否包含数组,只要拼接,那么在前一个后面添加一个字符串。
Boolean
布尔类型有两个值,true和false。区分大小写
true和false
true、除0数字、something、Object等都为true。
false、0、undefined、null、""、等都为false.
if()判断时,会把()中的值转换成boolean类型
undefined和null
null和undefined有很大的相似性,null==undedined
结果为true。但是不全等于。
任何数据类型和undefined运算都是NaN
任何值和null运算,null可看做0参与运算
数据类型转换
转换成String
- 变量+
" "
:任何变量与字符串(可为空)相加都为字符串 - String(变量)
- 变量.toString()。注意:undefined和null没有该方法
转换成Number
- 通过运算符转换:
-、*、/
。JS底层进行了隐式强制类型转换。 - Number(变量)。注意:如果变量中出现非数字字符,会转化成NaN
- parseInt()和parseFloat()如果首字母为非数字,则直接为NaN
- boolean类型中,true数值为1,false为0;
- null的数据类型为0;
- undefined无数值类型或者为NaN
转化成Boolean类型
任何数据类型都可以转化成boolean类型。Boolean(变量);只有两个值false和true