js基础
浏览器弹出警告框:alert("xxxxxxxxxx");
在页面输出内容:document.write("xxxxxx");
向控制台写内容:console.log("xxxxxxxxxx");
可以将js代码写到a标签的href属性中
<a href="javascript:alert('内容');">点击</a>
<a href="javascript:;">点击</a>
结构和行为耦合,不方便维护,可以将js代码卸载script标签中或者单独的js文件中,利用缓存机制提高用户体验
字面量:都是一些不可改变的值,字面可以直接使用,但是一般不直接使用字面量
变量:用来保存字面量,变量是可以随意更改的
js中一共有六种数据类型:String Number Boolean Null Undefined Object, object是引用数据类型,其他都是基本数据类型
js中表示的最大值:Number.MAX_VALUE、最小值:Number.MIN_VALUE
大于最大值:Infinity 无穷大 小于最小值: -Infinity,使用typeof检查infinity也会返回Number
NaN:使用一个特殊的数字
Null(空值)类型的值只有一个,就是null
* null这个值专门用来表示一个为空的对象
* 使用typeof检查一个null值时,会返回object
* Undefined(未定义)类型的值只有一个,就undefind
* 当声明一个变量,但是并不给变量赋值时,它的值就是undefined
* 使用typeof检查一个undefined时也会返回undefined
将其他类型转换成String
调用被转换类型的toString()方法,null和undefined调用toString()会报错
调用String()函数,将要被转化的数据传入,null转换成"null", undefined转换成"undefined"
其他数据类型转换成Number
1、调用Number方法
字符串 --- 数字,如果是非数字内容,则转换成NaN,如果字符串是一个空字符串或者全是空格的字符串,则转换0
布尔 ---- 数字 , true:1 false:0
null --- 数字 0
undefined -- 数字 NaN
2、调用专门的方式
parseInt(),把一个字符串转换成一个整数。 将一个字符串的有效整数取出来, 如果非String类型调用这个方法,会先将器转换成String类型,然后再进行操作
可以在parseInt()的第二个参数指定数字的进制
parseFloat(),字符串到整数
其他的数据转换成boolean
1、使用Boolean()函数:
除了0和NaN,其余的都是true,除了空串,其余的都是true,null和undefined转换成false,对象会被转换成true
<script type="text/javascript"> /* * 编写程序,由键盘输入三个整数分别存入变量num1、num2、num3, * 对他们进行排序,并且从小到大输出。 */ //获取用户输入的三个数 /* * prompt()函数的返回值是String类型的 */ var num1 = prompt("请输入第一个数:"); var num2 = prompt("请输入第二个数:"); var num3 = prompt("请输入第三个数:"); //找到三个数中最小的数 if(num1 < num2 && num1 < num3){ //num1最小,比较num2和num3 if(num2 < num3){ //num1 num2 num3 alert(num1 +","+num2 + ","+num3); }else{ //num1 num3 num2 alert(num1 +","+num3 + ","+num2); } }else if(num2 < num1 && num2 < num3){ //num2最小,比较num1和num3 if(num1 < num3){ //num2 num1 num3 alert(num2 +","+num1 + ","+num3); }else{ //num2 num3 num1 alert(num2 +","+num3 + ","+num1); } }else{ //num3最小,比较num1和num2 if(num1 < num2){ // num3 num1 num2 alert(num3 +","+num1 + ","+num2); }else{ //num3 num2 num1 alert(num3 +","+num2 + ","+num1); } } </script>
<script type="text/javascript"> /* * 水仙花数是指一个3位数,它的每个位上的数字的3 次幂之和等于它本身。 (例如:1^3 + 5^3 + 3^3 = 153),请打印所有的水仙花数。 */ //打印所有的三位数 for(var i=100 ; i<1000 ; i++){ //获取i的百位 十位 个位的数字 //获取百位数字 var bai = parseInt(i/100); //获取十位的数字 var shi = parseInt((i-bai*100)/10); //获取个位数字 var ge = i % 10; //判断i是否是水仙花数 if(bai*bai*bai + shi*shi*shi + ge*ge*ge == i){ console.log(i); } } </script>
<script type="text/javascript"> /* * 在页面中接收一个用户输入的数字,并判断该数是否是质数。 质数:只能被1和它自身整除的数,1不是质数也不是合数,质数必须是大于1的自然数。 */ var num = prompt("请输入一个大于1的整数:"); //判断这个值是否合法 if(num <= 1){ alert("该值不合法!"); }else{ //创建一个变量来保存当前的数的状态 //默认当前num是质数 var flag = true; //判断num是否是质数 //获取2-num之间的数 for(var i=2 ; i<num ; i++){ //console.log(i); //判断num是否能被i整除 if(num % i == 0){ //如果num能被i整除,则说明num一定不是质数 //设置flag为false flag = false; } } //如果num是质数则输出 if(flag){ alert(num + "是质数!!!"); }else{ alert("这个不是质数") } } </script>
<script type="text/javascript"> //测试如下的程序的性能 //在程序执行前,开启计时器 //console.time("计时器的名字")可以用来开启一个计时器 //它需要一个字符串作为参数,这个字符串将会作为计时器的标识 console.time("test"); //打印2-100之间所有的数 for(var i=2 ; i<=100000 ; i++){ var flag = true; for(var j=2 ; j<=Math.sqrt(i) ; j++){ if(i%j == 0){ //如果进入判断则证明i不是质数,修改flag值为false flag = false; //一旦进入判断,则证明i不可能是质数了,此时循环再执行已经没有任何意义了 //使用break来结束循环 break; //不加break 215ms //加break 25ms //修改j<=后 2.6 } } //如果是质数,则打印i的值 if(flag){ //console.log(i); } } //终止计时器 //console.timeEnd()用来停止一个计时器,需要一个计时器的名字作为参数 console.timeEnd("test"); /* * 36 * 1 36 * 2 18 * 3 12 * 4 9 * 6 6 */ //可以通过Math.sqrt()对一个数进行开方 //var result = Math.sqrt(97); //console.log("result = "+result) </script>