javascript 直译式脚本语言 动态类型 弱类型(不需要告诉类型直接赋值即可) 基于原型的语言 内置支持类型
javascript : 文档对象模型DOM 浏览器对象模型BOM 基本语法 构成
特性 跨平台
数据类型
undefined 未定义值 boolean 布尔值 string 字符串
number 数值 object 这个值对象或null function 这个值函数
将变量转换为字符串 (1)var b ="" +b ; (2)String(a); (3)a.toString();
将其转换进制 var a =10 ; a.toString(2); //转换成2进制[.toString(n);]
布尔类型
var a =10 ; Boolean(a); //不是null "" undefined 数值不能转换为0 即使真
javascript 下可以将数值 声明为 10 8 16 进制 浮点数 数值
var a =123; var a =0123;//8进制 var a =0x5af ;var a =0.534;
NaN 非数值 特殊数值
console.log(NaN);//number
用isNaN();函数判定该数是否是NaN isNaN("20"); //能隐式转换为数值 false isNaN("sdfd"); //不是数值true isNaN(true); //能转换成1 false
console.log(typeof a );//查看该变量类型
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title>script基本语法</title>
</head>
<body>
<p>严格区分大小写</p>
<p>标识符 _ 字母 数字 $ 数字不能开头
标准 采用 驼峰法命名 fishCade
</p>
<p id= "pz">注释 /* */多行 //单行</p>
<p>语句末尾可以不加分号 不推荐</p>
<script type="text/javascript">
//var 关键字 定义变量
// 区分是否时局域 还是全局 不是用{} 区分, {} 起不到区分作用于的作用
var b = "helloworld";
if(10){
var c = "html5";
}
//c 依然被访问
console.log(c);
/*
js 是以函数区分作用域
*/
// 全局变量 a
var a = 10 ;
function fun() {
// 局部变量 a
var a =100;
var b =10;
console.log(a);
}
fun();
// console.log(b); 无法访问到 局部变量 b
function fun2(){
var a = document.getElementById('pz');
console.log(typeof a);
// document.getElementsByClassName('className')
// document.getElementsByName('name')
// document.getElementsByTagName('tagName')
console.log(a);
var b ="helloworld" ;
console.log(typeof b);
var c ;
console.log( typeof c);
var d = undefined;
console.log(typeof d);
// typeof 不会产生错误
console.log(typeof e);
// console.log(e); 未定义e 会产生错误
var g =null;
console.log(typeof g);
// null 是 object类型
}
fun2();
//匿名函数 附给 fun3
var fun3 = function () {
}
console.log(typeof fun3);
// funtion 类型
//字符串拼接
var h ="hello";
h +="word";
console.log(h);
//只要有一个是字符串 就会拼接成字符串
h+=123;
console.log(h);
//其它类型转化成字符串类型
var i =10;
console.log(i);
console.log(i.toString());
// 16 可以转换进制 默认10进制
console.log(i.toString(16));
// undefined null是空的 不能用 toString
console.log(String(i));
var j =8.6;
//其实就是 利用字符串拼接转换
console.log(""+j);
// 布尔类型 显示转换
// 非空 0 即使 真
// "" 0 undefined
var k = 5.9;
console.log(Boolean(k));
console.log(Boolean(""));
//隐式转换
if(k){
alert("a is exist");
}
var l =12,m =012,n = 0x22;
console.log(l,m,n);
var a =3.13e-2;
console.log(a);
//0.1+0.2 != 0.3 ==0.30000000...04
console.log(0.3+0.2);
// NaN 非数值 一个不是数的数
var n =100+undefined;
console.log(n);//NaN
console.log(typeof n);//number
console.log(isNaN("10"));
console.log(isNaN(10));
console.log(isNaN("sddss"));
console.log(isNaN());
console.log("4 / 3 = ",4 / 3 );
</script>
</body>
</html>
函数声明
function fun(){
}
var a =function (){
};
声明会提升到代码顶部 但赋值不会
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title>function</title>
</head>
<body>
<script type="text/javascript">
// 函数声明
//函数的定义可以放在代码的任何位置 运行时 javascript引擎会将函数的声明提升到代码的顶部
function sum(arg1,arg2) {
return arg1 + arg2;
}
var result = sum(1,2);
console.log(result);
/************************************************************************/
// 变量声明提升: 定义的变量在运行时,会被提升到代码的顶部
// 匿名函数 var a = b ;
//不能调换位置
var minus = function (a,b){
return a - b;
};
result = minus(1,2);
console.log(result);
//等价与如下代码
// var minus;
// result = minus(10,5); minus不是函数所以出错
// console.log("result = ",result);
// minus =function(){
// return a - b;
// }
//声明(函数声明 变量声明)会提升 赋值不会提升
//函数参数可有可无 很灵活
var a =false;
console.log(a.toString());
var c;
console.log(Boolean(c));
</script>
</body>
</html>