首页 > 代码库 > javascript入门及数据类型
javascript入门及数据类型
试了下,js脚本除了不能在当前页面的title标签中,当前页面哪都可以放。但是还是规矩的安置为好。
a标签href属性放个脚本还是很不错的。
1 <a href="javascript:alert(‘还能这样用‘);">点我</a>
当使用如下方法来引入外部的js文件时,script标签就不能包含任何代码了
1 <script type="text/javascript" src="http://www.mamicode.com/bootstrap.min.js"></script>
使用var声明变量,变量会在内存中创建一块空间用于存储数据。
输出变量还可以使用console.log( );在控制台输入。
document.write()向body里面写入内容。document.title()向文档title部分写入内容
js数据类型:
1.字符串类型。string 通过单or双引号定义,引号单双无区别
1 var vzero = ‘ zero ‘;var vone = "this is variable" + vzero;console.log(vone);
2.数值类型。number 小数,整数都是数值类型
1 <script type="text/javascript">2 var str = "hello";3 var result = parseInt(str); //使用parseInt();可以强制转换为整数型数值4 console.log(typeof(result)); //number5 console.log(isNaN(result)); //true 使用isNaN();可以判断是否不是一个数值6 </script>
3.布尔类型。通常是用来作为条件判断,在php中‘0‘,‘[]‘被转换成false,js中反之。
1 var arr = [];2 console.log(Boolean(arr)); //true
4.函数类型。变量可以保存函数
1 <script type="text/javascript">2 var vone = function(){3 }4 function func(){5 }6 console.log(vone); //function7 console.log(typeof(func)); //使用function关键字定义函数8 </script>
函数中变量的作用域。在函数外部定义变量就是全局变量,反之局部变量。注意:如果在函数内部声明变量时,没有使用var关键字,表示变量就是全局变量。当在函数内部访问一个标量时,会先在函数内部查找,如果没有找到,则去上一级作用域查找,这个查找的过程称之为作用域链。
1 <script type="text/javascript">2 var vone = ‘global‘;3 function func1(){4 console.log(vone); //unsigned5 var vone = ‘func1‘;6 console.log(vone); //func17 }8 func1();9 </script>
函数的参数。除了形参、实际参数之外,还可以通过arguments对象进行管理,第一个参数保存到arguments数组的第一个元素,第二个参数会保存到arguments数组的第二个参数上,以此类推。
1 <script type="text/javascript">2 function Sum(){3 console.log(arguments);4 for (var i = arguments.length - 1; i >= 0; i--) {5 console.log(arguments[i]); // 7 8 5 16 }7 }8 Sum(1,5,8,7);9 </script>
闭包特性。在函数内部嵌套定义函数的时候,内部函数就会将外部函数的变量的最终值包含起来,保存到内存中,有些类似php的静态变量。
1 <script type="text/javascript"> 2 function func1(){ 3 var v1 = 10; 4 var func2 = function(){ 5 console.log(v1); 6 } 7 v1 = 20; 8 return func2; 9 }10 var result = func1();11 result(); // 2012 </script>
hint:在函数的外部即可以读取到函数内部的值。
使用此方法可以解决上述问题:
1 <script type="text/javascript"> 2 function func1(){ 3 var arr = []; 4 for (var i = 3; i > 0; i--) { 5 arr[i] = func2(i); 6 } 7 return arr; 8 } 9 var func2 = function(v){10 return v;11 }12 var result = func1();13 console.log(result[1]); // 114 console.log(result[2]); // 215 console.log(result[3]); // 316 </script>
5.数组类型。使用数组、对象可以保存多个值,可统称为复合类型的数据。
定义数组有两种方式:
new Array();、快捷语法[];
1 new Array(‘value1‘,‘value2‘);
注意,在js中不能定义关联类型的数组。
数组的遍历 可以通过for循环搭配arr.length遍历下标得出数据,或者直接使用for in:
1 var arr = [1,2,3,8,7,5];2 for (var num in arr){3 console.log(arr[num]);4 }
6.对象类型。数组只能定义索引数组,如果保存一些关联类型的数据,可以使用对象。
通过构造器创建对象,new object();
1 <script type="text/javascript"> 2 function Snake(){ //构造函数(构造器) 3 this.name = ‘小青‘; //对象成员 4 this.color = ‘green‘; 5 this.eat = function(){ //对象方法 6 console.log(‘吃老鼠‘); 7 } 8 } 9 var result = new Snake();10 console.log(typeof(result)); //object11 alert(result.name); //小青12 result.eat(); //吃老鼠13 </script>
通过快捷语法:{}字面量,创建对象
语法格式:
1 var obname =2 {3 属性名:属性值4 方法名:function(){}5 }
通过 new Object()创建对象。
1 <script type="text/javascript">2 var obj = new Object();3 obj.name = ‘大黄‘;4 obj.eat = function (){5 alert(‘runing‘);6 }7 obj.eat(); //runing8 </script>
访问对象的成员可以通过点的方式,也可以使用[]语法。
1 <script type="text/javascript"> 2 function Snake(){ //构造函数(构造器) 3 this.name = ‘小青‘; //对象成员 4 this.color = ‘green‘; 5 this.eat = function(){ //对象方法 6 console.log(‘吃老鼠‘); 7 } 8 } 9 var snake = new Snake();10 for (var attr in snake){11 console.log(snake[attr]);12 }13 </script>
7.null类型。指一个空对象的指针,可以理解为空对象的占位符。
1 var obj = null;2 console.log(typeof(obj));
8.undefined类型。函数没有返回值,或声明了变量,但是未初始化值,他就是undefined
1 <script type="text/javascript">2 function Snake(){3 }4 console.log(Snake());5 var vone;6 console.log(vone);7 </script>
javascript入门及数据类型