1.在网页中编写JS脚本程序的两种方式
1.直接在<script>标签中编写,定义在最后
2.单独创建js文件,在HTML中使用<script src="url"></script>引入
2.变量
var 变量名=值; (仅声明未赋值,默认值为undefined)
特殊情况:
1.为一个未声明过的变量赋值,不会出错
2.尝试从一个未声明过的变量中取值,会出错(ReferenceError:没找到或未定义)
***声明提前:程序执行前,会将所有的var声明的变量提前到开始位置,集中创建,但是<赋值留在原地>
3.常量:const 常量名(大写)=值;
4.数据类型
两大类:
1.原始类型:值保存在变量本地的数据类型
Number String Boolean undefined null
2.引用类型:值不保存在变量本地的数据类型
Number:
舍入误差(四舍五入): n.toFixed(m):将n按照m位小数四舍五入
String:
字符串内容一旦创建,不能改变,要象改变,只能创建新字符串替换
5.数据类型转换:
JS是弱类型的编程语言:3方面
1.声明变量时,不用指定变量类型
2.赋值时动态决定变量数据类型
3.运算时,js会根据需要,动态转换数据的类型
数据类型转换:2大类
1.**隐式转换**:(仅影响表达式计算结果,对变量中存储的实际值无影响)
算术运算中,一切类型默认转换成number类型,再计算
(+运算中的一方是String类型例外)
表达式:从左到右两两计算(每个表达式默认有且只有一个计算结果)
NaN isNaN()
typeof():返回类型
undefined boolean string number object function
**typeof(NaN)=number**
2.**强制转换**
1.任意类型to String (默认自动调用)
2.任意类型to Number :var n=Number(x); 隐式
String to Number两种方式
1.var n=parseInt(str):从str开始位置逐个读取每个字符,直到碰到不是数字的字符(自动忽略开头空格)
2.var n=parseFloat(str)
3.任意类型 to Boolean
var bool=Boolean(x); 隐式转换
"" NaN undefined null 0 -->false
其他 -->true
var input=window.prompt("输入提示");
凡是从页面上获取的数据都是String类型的
6.运算符和表达式
1.++/--
++n|n++:最后n的值必然发生变化,但是将其当做一个整体
2.undefined和null作比较
unedfined==null //true
undefined===null //false
3.逻辑判断时会将所有条件变成Boolean类型,但是条件本身的值不变
4.**短路逻辑**:若前一个条件已经能得出结论,后面的条件不用再判断
5.**三目运算**:
条件1?值1:
条件2?值2:
...