<script>
console.log(typeof NaN); //number类型
console.log(10*"hello") //NaN
console.log(10 * "10") //100//100隐式转化
console.log(isNaN(" ")); //false,将字符串变为0
console.log(isNaN("HELLO")); //true
console.log(Boolean(NaN)); //false
//************************************undefined类型**********************************//
var one = undefined;//定义了变量,但是变量的值为undefined
var two;//变量没有赋值,那么默认值为 undefined!!!!
console.log(one);//undefined
console.log(two);//undefined
console.log(Boolean(undefined));//false
console.log(typeof one);//undefined 类型
//变量需要定义后才能使用
// console.log(three);//错误,程序终止运行!!!!
//typeof测试什么变量都不会报错,typeof没有错误
console.log(typeof three);//undefined
/**************************null 类型******************/
var four = null;
console.log(typeof four); //object 对象
/*
函数是实现某个特定的功能的多条语句的有序集合。
函数:就是封装代码,实现代码的模块化!!!
*/
/*
功能:打印输出
形式参数:
@arg1, 任意类型
@arg2, 任意类型
@arg3, 任意类型
返回值:默认没有返回,undefined
*/
function func(arg1,arg2,arg3){
//具体代码
console.log(arg1,arg2,arg3);
}
//函数调用,需要传入实际参数
//如果参数没有传递,那么会有undefined默认值
var result = func(1,2,3,4,5,5,1);
console.log(result);//当没有显示返回,返回值是undefined
/*
功能:求和
@arg1, number
@arg2, number
返回值:计算结果
*/
function func2(arg1,arg2){
// return 返回之后函数立刻结束,return之后的代码不再运行
return arg1 + arg2;
}
//将func2的返回值给result,接收返回值
result = func2(10,20);
console.log(result);
//js中的函数有个特点:声明提升
函数可以定义在任何位置,在javascript引擎运行该代码时,会自动将函数提升至到作用域的顶部//
//全局作用域
局部作用域
javascript只有函数是用于区分作用域的!!!!并不是{}在c语言中if{}while{}中的变量都为局部但在javascript中只有函数内
var a=10;//全局变量
function func(){
var b=20;//局部变量,局部变量只能在指定的作用内访问
console.log("b=",b);
}
//全局变量在任意位置都可以访问
console.log("a=",a);
func()
function func(){
var a=10;
function func1*(){
var b=20;
}
func1()
}
</script>