JavaScript是一种基于对象和事件驱动的弱类型的脚本语言,不需要编译即可运行,运行在客户端,需要通过浏览器来解析执行JavaScript代码。
JavaScript是一种属于网络的高级脚本语言,已经被广泛用于Web应用开发,常用来为网页添加各式各样的动态功能,为用户提供更流畅美观的浏览效果。
包含三部分:
可以将js代码编写到外部js文件中,然后通过script标签引入 写到外部文件中可以在不同的页面中同时引入,也可以利用到浏览器的缓存机制
注意:scrip标签一旦用于引入外部js文件,就不能在编写代码了 即使编写了浏览器也会忽略 如果需要则可以再创建一个新的script标签用于编写内部代码
可以将js代码写在超链接的href属性中,这样当点击超链接时,会执行js代码
百度一下
3.1 js是弱类型的语言,不重视数据类型的声明,js会根据变量赋值的情况判断该变量属于何种数据类型。
3.2 var 变量名称 = 存储的数据; (variable 变量,var是全局变量的声明)
let 变量名称=存储的数据;(let是局部变量的声明,只在let命令所在的代码块内有效)
var name="林俊杰";
var age=30;
var ok=true;
3.3 变量的命名规范
注意:js中的每一条语句以分号(;)结尾,如果不写分号,浏览器会自动添加,但是会消耗一些系统资源.
当声明一个变量,但是并不给变量赋值,该变量的数据类型就是undefined
var age;
console.log("age的数据类型是"+typeof(age));
js中的一切浮点数和整数都属于数值型
var id=1;
console.log("id的数据类型是:"+typeof(id));
var score=56.5;
console.log("score的数据类型是:"+typeof(score));
注意:js中的小数和整数都是number类型,不存在整数除以整数还是整数的结论。
var a=1234/1000;
console.log(a);
js中的字符串可以使用单引号包裹,也可以使用双引号包裹。
字符串和其他的数据使用+号运算,会拼接成一个新的字符串 。
var s = "12";
s += 10;
alert(s);
仅有2个值:true和false。
var name=null;
console.log("name的数据类型是:"+name);
isNaN(Not a Number,不是一个数字)和typeof
isNaN():判断变量是否属于非数字,属于非数字返回true,不属于非数字则返回false。
注意:当数字型的字符串(如"123","5")遇上isNaN(),isNaN( )里面会调用Number函数去转义
var str="123";
console.log("str是否属于非数字:"+isNaN(str));
console.log("str属于"+typeof(str)+"类型");
因为str属于数字型的字符串,当调用isNaN( )方法时,isNaN里面会调用Number函数去转义 ,字符串"123"就被转义成了数字123,所以最终的结果是false。
typeof(变量)或typeof 变量:返回变量的数据类型,是什么类型的数据就会返回对应的数据类型。
var sex='男';
console.log("变量sex属于"+typeof(sex)+"类型");
var height=175;
console.log("变量height属于"+typeof(height)+"类型");
=和==和===的区别
=:代表赋值。
==(相等):当使用==来比较两个值时,如果值的类型不同,则会自动进行类型转换,将其转换为相同的类型再比较。
var a=123;
var b='123';
console.log("a==b为:"+(a==b));
===(全等):全等用来判断两个值是否全等,它和相等类似,不同的是它不会做自动类型转换,如果两个类型不等,直接返回false。
var a=123;
var b='123';
console.log("a===b为:"+(a===b));
创建方式1(定义不赋值):
var ary1=new Array();
console.log(ary1)
var ary1=[];
console.log(ary1)
var ary3=[1,true,'哈哈'];
console.log(ary3);
var ary3=new Array(1,true,'哈哈');
console.log(ary3);
本质上,数组属于一种特殊的对象。typeof
运算符会返回数组的类型是object
。
var ary2=new Array(1,'abc',true,null);
console.log('类型:'+typeof(ary2));
var ary1=new Array();
ary1[1]='嘿嘿';
console.log("ary1数组的长度是:"+ary1.length);
原数组ary1的长度为0,当给下标为1的元素赋值时,会改变原有数组ary1的长度,这一点和Java中的数组有区别。
var ary1=new Array();
ary1[1]='嘿嘿';
console.log("ary1数组的长度是:"+ary1.length);
console.log(ary1[3])
console.log("ary1数组的长度是:"+ary1.length);
如果超出下标访问,不会出错,会显示undefined
ary1[3]没有被赋值,不能改变原有数组的长度,所以长度还是2。
JS数组中常见的方法或属性
1.获得数组的长度:数组名.length;
var array1=new Array(1,2,false,'嘿嘿');
console.log("array1的长度是:"+array1.length);
2.获得索引位置的元素:数组名[索引或下标];
var array1=new Array(1,2,false,'嘿嘿');
console.log("array1中索引为2的元素是:"+array1[2])
3.修改索引位置的元素值:数组名[索引或下标]=新的值 ;
var array1=new Array(1,2,false,'嘿嘿');
console.log("array1原数组:"+array1);
array1[1]=9;
console.log("修改后的array1数组:"+array1);
4.在数组的尾项添加一个元素:数组名.push(添加的内容);
var array1=new Array(1,2,false,'嘿嘿');
console.log("array1原数组:"+array1);
array1.push(true);
console.log("在array1数组的尾项增添元素为true的新数组:"+array1);
5.删除数组的尾项: var last=数组名.pop();
会返回删除的那个元素last
var array1=new Array(1,2,false,'嘿嘿');
console.log("array1原数组:"+array1);
var last=array1.pop();
console.log("删除的尾项为:"+last)
console.log("删除尾项(嘿嘿)的新数组为:"+array1);
6.在数组的首项前添加一个元素:数组名.unshift (添加的内容);
var array1=new Array(1,2,false,'嘿嘿');
console.log("array1原数组:"+array1);
array1.unshift(6);
console.log("在首项前添加元素6后的数组为:"+array1);
7.删除数组的首项:var first=数组名.shift ();会返回删除的首项元素first
var array1=new Array(1,2,false,'嘿嘿');
console.log("array1原数组:"+array1);
var first=array1.shift();
console.log("删除首项(1)的新数组为:"+array1);