JS语法:
Javascript基本数据类型:undefined/null/Boolean/number/string
复杂数据类型:object
typeof用来检测变量的数据类型
typeof的使用方法有两种:
(1)typeof 变量
(2) typeof(变量)
undefined派生自null,所以undefined==null返回的结果是true
用于任何数据类型,Number()可以将非数值转化为数值,但是有一些数据是不能转化为数值的,如果这类数据通过Number()进行强制转化的话,会返回NaN
var a=Number(name_01);
用于把字符串转换为数值
var b=parseInt("28px") var d=parseFloat("12.34.56px");
不知道值是不是null或者undefined,可以使用String(),可以将任何类型的值转为字符串
var idstr=ids.toString(); console.log(String(m));
在运算中,除了加法,其余的运算都会将字符串先转换为数字之后再进行计算,但是两个数据相加,如果有一方是字符串的话,加号的作用就是将他们进行拼接
如: 数字5和字符串"5"进行加减乘除运算,结果分别是:55 0 25 1
&&逻辑与:
如果第一个操作数隐式转换后为true,则返回第二个操作数;
如果前面的都为true,则返回最后一个操作数。
如果第一个操作数隐式转换后为false,则返回第一个操作数;
如果有一个是null,则返回null;
如果有一个是undefined,则返回undefined;
如果有一个是NaN,则返回NaN
||逻辑或:
如果第一个操作数隐式转换为true,则返回第一个操作数;
如果第一个操作数隐式转换为false,则返回第二个操作数,依次往后;
如果两个数都是null,则返回null;
如果两个数都是undefined,则返回undefined;
如果两个数都是NaN,则返回NaN;
!逻辑非
无论如何都会返回一个布尔值
!!对逻辑非的结果再求反;
JS流程控制语句:
var age=prompt("请设置您的密码"); if(age<18){ alert("您还没有成年"); }else{ alert("您已成年,请提供您的身份证号"); } if(age.length!=6){ alert("请输入6位数字密码"{ if(isNaN(age)){ alert("密码必须是6位数字"); }{ alert("密码设置正确"); } }
NaN也是一个number类型的一种,typeof NaN==number
var week=new Date().getDay(); var weekstr=""; console.log(week); // 0-6 多条件的判断 switch switch(week){ case 0: weekstr="日"; break; 退出 case 1: weekstr="一"breakcase 2: weekstr="二"case 3: weekstr="三"case 4: weekstr="四"case 5: weekstr="五"default: weekstr="六"; } document.write("今天是星期"+weekstr);
for循环嵌套:
外层为假时内层不执行;
先执行外层,再执行内层;当内层为假时再执行外层。
JS函数:
函数执行完return之后立即停止并退出函数。
如果return后面没有值,默认返回undefined
js非严格模式下,可以使用arguments来改变传入的参数的值
function inner(){ arguments console.log(arguments.length); console.log(arguments[1]); 索引是从0开始的正整数 } inner(10,5 add(num1,num2){ arguments[0]=99; console.log(num1); } add(55,88)
JS内置对象【数组】:
创建数组的两种方式:
new Array()
字面量方式 []
arr.length 获取数组长度
过设置length可以从数组的末尾移除项或者添加新项
统计员工工资的代码:
(1) 不停的接收用户输入的员工的工资,直到用户输入“退出”便不再弹出“输入工资”的窗口
(2) 把用户输入的数据保存在一个数组中
var input,arr=[]; while(input!='退出'){ input=prompt('请输入员工工资'); arr[arr.length]=input; } arr.length-=1;不存入'退出' document.write(arr);
数组的栈方法:
push从数组末尾加入 var colors=new Array("red","green"var len=colors.push("blue","yellow","blank"); console.log(len); unshift从数组头部加入 var nums=[2,7,8,6]; var size=nums.unshift(99,66 pop从数组尾部删除,返回值是被删除的元素 var n=nums.pop(); console.log(nums); shift从数组头部删除,返回值是被删除的元素 var m=colors.shift(); console.log(m);
join 把数组元素转为字符串 var str=nums.join(); 2,5 var words=["border","left","color" border-left-color var wordstr=words.join("-"); console.log(wordstr); reverse 数组中元素反序 nums.reverse(); console.log(nums); var strs=["a","b","c","d" 返回dcba这个字符串 var newstr=strs.reverse().join("") console.log(newstr); 29,5,24,17,32 var arr=[9,23,15,-99,88,12,-2sort()对数组元素进行排序,按字符串格式进行排序 var _arr1=[8,95,31,1,1)">]; console.log(_arr1.sort());输出1,因为会先将元素转换为字符串,用字符串的首字符进行比较, 如果第一个字符相同,继续比较第二个字符 针对上面的情况,使用以下方法解决 降序 return 参数1<参数2 arr.sort(function(a,b){return a<b}); 升序 return 参数1>参数2 arr.sort(return a>b}); console.log(arr);
var arr1=["a","c"],arr2=["d","e",3 concat 连接两个或多个数组 arr3=arr1.concat(arr2,["m",99,8]); console.log(arr3); slice(start,end) end下标 截取数组一部分返回 包含start,不包含end start负数,就是数组长度+该长度 如果没有end,就从start一直到结束 var colors=["red","green","blue","orange"]; var newColors=colors.slice(1,1)">); var newColors2=colors.slice(2,4var newColors3=colors.slice(-4,3); 1,3 console.log(newColors3);
拷贝数组的方法 var a=[1,"yes",b; 1、数组遍历,push b= Array(); for(var i=0;i<a.length;i++){ b.push(a[i]); } 2、concat() b=[].concat(a); 3、slice(); b=a.slice(0); console.log(b);
splice返回值是被删除的项,如果没有删除则返回[] var arr=["a","d","f" 删除,从index开始删除count个数,返回被删除的 splice(index,count) count为0 则不删除;count不设置,则从Index开始删除到最后 var delArr=arr.splice(2,1)"> 插入,从index开始,删除count个,插入item1... var insertArr=arr.splice(3,"m","n",88 替换 var replaceArr=arr.splice(1,2,"x","y","z"); console.log(arr); console.log(replaceArr);
var nums=[1,6,9indexOf(seachvalue,startIndex) 返回查找的项在数组中的位置,没有则返回-1 var pos=nums.indexOf(7,2lastIndexOf()从数组末尾开始查找 var pos=nums.lastIndexOf(1var pos=nums.indexOf("7"); console.log(pos);
indexOf()方法有兼容性问题,解决方案:
封装一个方法实现indexOf的功能 ArrayIndexOf(arr,value){ 检测value在arr中出现的位置 var i=0;i<arr.length;i++){ if(arr[i]===value){ return i; } } return -1; }