js的基本使用
js的三种基本使用方式
1、行内js
在html标签上直接写js代码
2、内部js(script可以放在head或body中,建议放于body标签最后)
在script标签中写js代码,
3、外部js
定义js文件,通过script标签的src属性引入对应的js文件
注:如果script标签设置了src属性,则在script双标签之间的js代码不会生效
<!-- 行内js -->
<button onclick="alert('hello world');">按钮</button>
<!-- 内部js -->
<!-- <script type="text/javascript">
alert('这是一个按钮');
</script> -->
<!-- 外部js文件 -->
<script src="js/text.js" type="text/javascript" charset="ulf-8"></script>
语句:
1.js代码一行为单位,代码从上往下执行,一行一语句
2.语句不加分号结尾,如果一行定义多条语句,每句语句必须以分号结尾,建议都加
3.表达式不需要加分号,如果加了分号则会被当作语句,从而生成无用的语句
注释:
1.html注释
2.js代注释:
//单行注释
/*多行注释*/
标识符:
规则:
由unicode字母组成、_、$、数字、中文组成
(1)不能以数字开头
(2)不能是关键字或保留字
(3)严格区分大小写
规范:
见名知意
驼峰命名或下划线规则
变量:
js是一种弱类型语言,在声明变量时不需要指明数据类型,直接用var修饰符进行声明
变量的声明:
1.先声明在赋值
2.声明同时赋值
变量的注意点:
1如果变量未声明,则显示undefined
2.如果变量未声明就使用,会报错。
3.可以使用var同时声明多个变量
4.如果重新声明一个已存在的变量,是无效
5.如果声明一个已经存在的变量,并赋值,会覆盖。
6.js是一种动态的弱类型语言,可以声明任何类型的变量
变量名提升:
效果未赋值也运行,只是变量显示undefined
不使用var声明变量
缺点,无法变量名提升
<script type="text/javascript">
console.log('hello');
console.log('hahaha');
// 变量名提升
console.log(a);
console.log(name);
// 先声明再赋值
var a;
a=1;
console.log(a);
// 声明同时赋值
var b =2;
console.log(b);
// 可以使用var同时声明多个变量 结果为undefined undefined 10
var aa,bb,cc=10;
console.log(aa,bb,cc)
// 如果声明一个已经存在的变量,并赋值,会覆盖。
var a=2;
console.log(a);
// js是一种动态的弱类型语言,可以声明任何类型的变量
var str='hello world';//字符串类型
var flag= true;//布尔类型
console.log(str);//
console.log(flag);//
console.log('ture');//
// 不使用var声明变量
name = 'zhangsan';
console.log(name);
<//script>
数据类型:
js是弱类型语言,变量没有数据类型,数据有类型
undefined数据类型
未定义,值不存在
出现的情况:1.变量未声明
2.当定义函数需要形参,调用函数未传递实参时
3.函数没有返回值时,接受值为undefined
null类型
表示空值
注意点:1.typeof 操作符测试null返回object字符
typeof操作符用来判断变量类型
2.undefined 派生自null所以等值返回值是true,未初始化的变量和赋值为null的变量相等
数值型
数值型包含两种数值,整型和浮点型
1)所有数字(整型和浮点型)都是以64位浮点数形式储存,所以js中1和1.0相等
2)在存储数值型数据时自动将可以转换为整型的浮点数转换为整型
布尔类型
true or false
字符串类型
1.使用''或""引起来
2.可以使用+对字符串进行拼接
// undefined数据类型
// 变量只声明未赋值,
var a;
console.log(a);
// 当定义函数需要形参,调用函数未传递实参时
// 定义函数 function 方法名(【参数】){}
function fn01(str) {
console.log(str);
}
// 调用方法 方法名(【】);
fn01();
// 函数没有返回值时,接受值为undefined
function fn02() {
console.log("fno2...");
return 1;
}
var b=fn02();
console.log(b);
// null数据类型
var num = 1;//数值
var flag = true;//布尔类型
var str = 'hello';//字符串
console.log(typeof num);//Number
console.log(typeof flag);//boolean
console.log(typeof str);//string
//使用typeof操作符测试null返回object字符串
var aa= null;
console.log(typeof aa);//返回object
//undefined 派生自null所以等值返回值是true,未初始化的变量和赋值为null的变量相等
console.log(undefined==null);//ture
// 只声明未赋值的变量和值为null的变量相等
var bb;
var cc=null;
console.log(bb==cc);//ture
// 数值型
// 1和1.0相等
console.log(1==1.0);//true
//1+1.0=2
var n=1+1.0;
console.log(n);//2
//将浮点型的整数转换为整型
console.log(1.0);//1
//字符串类型
//使用''或""引起来
var s1="hello";
var s2='hello world'
console.log(s1,s2);
//可以使用+对字符串进行拼接
console.log(s1+s2);
对象类型:
数组
var 数组名=[];
对象
var 对象名=[];
函数
function 方法名(){
}
类型转换:
1.自动类型转换
1.所有的值转字符串都是加引号
2.转布尔型:有值为true 无值为false(0为false,非零为true)
3.转数值:空值是0,非空的数值型字符串能转换,非数值字符串转换为nan
2.函数转换
parseInt()转整数型
parseFloat()转浮点型
注:转换时会从值的第0个位置开始找有效数字,直到找到无效数字位置
3.显示转换
toString()将值转换成字符串
toFixed()保留指定小数位
注:值不能为null.
js为Number Boolean String对象提供了构造方法,用于强制转换数据类型,转换的是值的全部
注:可以转换null
// 类型转换 函数转换
console.log(parseInt('123abc'));//123
console.log(parseInt('abc123'));//NaN
console.log(parseInt('123.4abc'));//123
console.log(parseInt('123'));//123
var a='1';
var b='2';
console.log(a+b);//12
console.log(parseInt(a)+parseInt(b));//3
console.log(parseFloat('123abc'));//123
console.log(parseFloat('abc123'));//NaN
console.log(parseFloat('123.4abc'));//123.4
console.log(parseFloat('123'));//123
// toString()
var dd=10;
console.log(dd);
console.log(dd.toString());
//toFixed()
var ee=1.345;
console.log(ee.toFixed());//1
console.log(ee.toFixed(2));//1.34
//Number
var q='1';
var w='a';
var e='123abc';
var r='123.4';
var t='123.4abc';
var y='123.4.5';
console.log(Number(q));
console.log(Number(w));
console.log(Number(e));
console.log(Number(r));
console.log(Number(t));
console.log(Number(y));
//Boolean
console.log(Boolean('a'));
console.log(Boolean(0));
console.log(Boolean('1'));
console.log(Boolean(null));
//String.
console.log(10);
console.log(String(10));
console.log(null);
console.log(String(null));