试了下,js脚本除了不能在当前页面的title标签中,当前页面哪都可以放。但是还是规矩的安置为好。
a标签href属性放个脚本还是很不错的。
1 <a href="javascript:alert(‘还能这样用‘);">点我</a>
当使用如下方法来引入外部的js文件时,script标签就不能包含任何代码了
1 <script type="text/javascript" src="./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)); //number 5 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); //function 7 console.log(typeof(func)); //使用function关键字定义函数 8 </script>
函数中变量的作用域。在函数外部定义变量就是全局变量,反之局部变量。注意:如果在函数内部声明变量时,没有使用var关键字,表示变量就是全局变量。当在函数内部访问一个标量时,会先在函数内部查找,如果没有找到,则去上一级作用域查找,这个查找的过程称之为作用域链。
1 <script type="text/javascript"> 2 var vone = ‘global‘; 3 function func1(){ 4 console.log(vone); //unsigned 5 var vone = ‘func1‘; 6 console.log(vone); //func1 7 } 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 1 6 } 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(); // 20 12 </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]); // 1 14 console.log(result[2]); // 2 15 console.log(result[3]); // 3 16 </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)); //object 11 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(); //runing 8 </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>