解释型语言和编译型语言
计算机不能直接理解除机器语言以外的语言,所以必须要把程序员所写的程序语言翻译成机器语言才能执行程序,程序语言翻译成机器语言的工具叫做翻译器
翻译器翻译的方式有两种:
1、编译 : 代码执行之前进行编译,会生成中间代码 eg java
2、解释 :运行时进行及时翻译,并立即执行 eg :js
区别:翻译的时间点不同
编译 就像请客吃饭,得把所有菜做完了,才能吃
而 解释就像吃火锅,涮多少吃多少
弱类型语言和强类型语言
弱类型语言
弱类型语言 : 就是不需要特别定义数据类型的语言
也就是说,当某一个变量被定义类型,那么该变量可以根据环境变化自动的进行转换,不需要强制类型转换
强类型语言
而 强类型语言 : 就是一旦某一个变量被定义类型了,那么若不经过强制类型转换,那么,它永远是该数据类型 (java,python...)
强弱类型 判断核心
对 ‘强弱类型’ 判断的核心是 ‘不同类型的变量是否允许进行隐式转化’
强类型语言 : 不对变量的类型进行隐式转换 ,所以python属于强类型语言
弱类型语言 : 对变量的类型进行隐式转化 ,
关键字,保留字,标识符
标识符
开发人员为 变量,属性,函数,参数取的名字
标识符 不能做关键字或者保留字
关键字
js已经使用的字,不能再当标识符了
保留字
预留的关键字,就是现在虽然不是关键字,但未来可能会成为关键字
为什么需要数据类型
因为 不同数据所需要占有的存储空间是不同的,为了便于把数据分成所需内存大小不同的数据,充分利用存储空间,于是定义了不同的数据类型
js属于 一种弱类型或者动态语言
js 的变量数据类型 是只有程序在运行过程中,根据等号右边的值来确定的
动态语言
是指 在运行时 可以改变其结构的语言 eg :javascript ,python...
js是动态语言,变量的数据类型是可以变化的
静态语言
在运行时 ,不可以改变结构的语言 eg : java 、 c 、 c++
数据类型的分类
简单数据类型
number 数字型
默认 : 0
包括整型和浮点型
数字型进制
最常见的有 二进制、八进制、十进制、十六进制
在js中 八进制前面加 0 ; 8进制数范围 : 0~7
十六进制前面加 0x ; 16进制数范围 : 09和AF
数字型范围
最大值 : MAX_VALUE
最小值 : MIN_VALUE
无穷大 Infinity
无穷小 -Infinity
非数字 NaN
isNaN 判断非数字
若是 数字,返回 false ; 若不是数字,返回 true
boolean 布尔型
默认 : false
值 : true 和 false
布尔型在参与 加法运算中,true : 1 ; false :0 来看
string 字符串型
默认 : “”
得用 单引号 或者 双引号 引起来
字符串嵌套
要么单引号嵌套双引号,要么双引号嵌套单引号
字符串转义符
必须以 \ 开头的 ,才是转义符
\n 换行
\ \ 斜杠
\ ' 单引号
\ " 双引号
\t tab缩进
\b 空格
字符串长度 length
长度 : length
字符串拼接 +
多个字符串可以进行拼接
注 : 只有拼接中 存在字符串型,那么最后的结果就是字符串型
undefined 就是说 不确定是什么类型
默认 : undefined
说明 : 声明了变量a 但是没有给值,所以此时就是 undefined
就是声明 未赋值 ,就是undefined
undefined和字符串相加
undefined和数字相加
一个不确定数据类型的值和数字型相加 结果是 NaN (not a number)
null 空值
默认 : null
说明 : var a = null 手动给a设置了null
null和字符串相加
null 和 数字相加
因为一个啥也没有的变量和数字相加 就等于数字
复杂数据类型
后面会学
获取变量类型 typeof
特殊的 null的类型是 object
注 : 使用prompt 取过来的是 字符型
数据类型的转换
把一种数据类型 转为 另一种数据类型
转为成 数字型
方法 :
1、parseInt(变量) !!
2、parseFloat(变量) !!
3、Number() 强制类型转换
4、- * / 隐式转换
parseInt() (整型)
转为整型
若 变量是 字符串形式,那么转为整型时,会看首字母是否是数字,若是则一直到非数字结束
若首字母就不是数字类型,那么直接返回NaN
parsefloat() (浮点类型)
除了 会转为浮点型,其他和转为整型差不多
Number() 强制类型转换
利用算数运算 - * / 隐式转换
转换成 字符型
方法 :
1、变量.toString()
2、String(变量)
3、加号拼接字符串 !!
变量.toString()
控制台中 黑色表示 字符串 ,蓝色表示数字
String(变量)
加号拼接字符串 也叫隐式转换
转为布尔型
Boolean()
只有代表 空,否定的值会被转为 false ,如 '',0,null,undefined,NaN ;其他全部为 true