html自学笔记与面试会问到问题

第一章
1.1什么是JavaScript?

一各跨平台的脚本语言

1.2ECMA特点:

由三大部分组成:核心语法(关键字、核心对象、语法)、DOM、BOM

1.3 取余运算(又叫取模运算):

取余:整除后,除不尽的余数!如对89取余,结果为17(即:商3余17)
1%3=1 ;2%3=2 注:如果前面的数小于后面的数,则值为前面的数
2%1=0 ;2%2=0 注:如果能被整数,则值为零!
例如:为抵抗洪水,战士连续作战89小时,编程计算共多少天零多少小时?
var total=89;
	alert(“共计”+parseInt(total/24)+“天”+“零,”+total%24+“小时”);
	alert(total%24);
共3天零17小时

1.4在JS中“=”代表的意思:表示赋值运算!

Eg:  
<script>
var x=100; var y=99;
x=y;
document.write(x); 显示结果99
document.write(y); 显示结果99
</script>

1.5、什么是变量?

变量:就是内存的一块空间。

(注:内存,即内部的存储器。硬盘,外部的存储器。硬盘读取数据的速度,表较慢。)
1.5.1查看变量的数据类型用(typeof)

例如:var  name="xiaoming";   
 var res=typeof  name;  
document.write(res); 显示结果 string.

1.6、类型转换:不同的数据类型之间做运算

var num=5;  document.write(num +1); 显示结果 6
var num="5"; 
 document.write(num+1); 显示结果51;
var num="5"; 
 document.write(num-1); 显示结果4;
 var num="5"; 
 document.write(+num+1);
(*注在一个字符串前面,带上正负号,可以将该字符创转换为数字)

1.6.1 各类型相互转化实例:

    var num="5"; 
var e=parseInt(num);  document.write(e); 显示结果5
   var e=parseFloat(num);  document.write(e);显示结果5
    var e=Number(num);  document.write(e);显示结果5

1.6.2浮点类型之间的加减法:

var num=0.2; 
var nu=0.1;
 document.write(num+nu);   显示结果0.30000000000000004
 var num=0.2; 
var nu=0.1;
 document.write(num*nu); 显示结果0.020000000000000004
var num=0.2; 
var nu=0.1;
 document.write(num/nu);显示结果2

1.6.3NaN关系运算

 var a=”xiaomi”;
 var b=”123a”;
document.write(Number(a)==Number(b));显示结果false;

(*注 Nan不是数字,document.write(Number(a)Number(b));一个不是数字的东西另一个不是数字大的东西!)
1.7、运算符
=== 表示绝对等于 == 等于(会做转化,然后做运算) !=不等于

例如:var x=100;var y=”100”
alert(x=y);结果是true;
alert(x===y);结果是false;
例如:alert(true==1);结果是true;
alert(true===1);结果是false;
例如:alert(true !=1);结果是false;
例如:alert(true !==1);结果是true;  (注*:==两个等号之间进行了类型的转换!)

1.8、自增和自减(a++与++a的区别:)

a+ =1;  等价于   a= a+1
a++;等价于  a+ =1; 也就等于a= a+1 
  
   ++a;等价于a+ =1;(前置自增,就是++a,表示先对变量a加1,再使用变量的值)
a++;等价于a+ =1;(后置自增,就是a++,表示先使用变量的值,在对变量a加1)

1.8.1加法

例如:var k=2;
alert(k+ ++k + k++ + ++k +k)
解:var k=2;
alert(k+ ++k + k++ + ++k +k)
   |
var k=2;
alert(2+ 3 + 3 + ++k +k)       先将第三个变为3
|
var k=4;
alert(2+ 3 + 3 + 5 +k)
|
var k=5;
alert(2+ 3 + 3 + 5 +5)

1.8.2减法

var k=2;
alert(k- --k-k--+--k-k)
2-1-1+-11=0
1.9、位运算
1.9.1按位与
(&,当两者都为“真”的时候,结果才为“真”,当其中一个为“假”的时候,结果才为“假”。)
例如: var a=1; 			 0000 0001;
       var b=2;  			 0000 0010;
var c=a&b;         0000 0000;
alert(c);            结果:0

1.9.2按位或

例如: var a=1; 			 0000 0001;
       var b=3;  			 0000 0011;
var c=a|b;         0000 0011;
alert(c);            结果:11.9.3移位运算
例如:
var c=2;
 var d=c<<3;   //2*2*2*2
alert(d);        结果显示16

1.10、十进制、八进制、十六进制

1.10.1十进制
a=1015

1.10.2八进制

a=076;    //6+7*8=62
a=065;    //5+6*8=53

1.10.3十六进制

 var a=0xAF5;                //5+15*16+10*16^2
alert(a);显示结果2805;

1.10.4其他显示

var a=094;alert(a);   显示结果94;
(注:因为十位为9,不是八进制以内的数字(0-7))

第二章
2.1、程序的三大机构:顺序、选择、循环
2.2、IF语句

if(判断条件,布尔类型){//注*:在if的()里面,必须是一个逻辑运算表达式
条件成立后的执行代码
}else{
否则执行。。。。
}

例如:输入年份,计算某一年是否是闰年。
解:闰年产生的条件:被4整除,非整百年,或者被400整除。
<head>
<meta charset="utf-8">
<title></title>
<script>
function jsuan(){
     var year=input.value;
	 if((year%4==0 && year%100!=0) || year%400==0){
		alert("是闰年!");
	 }else{
	    alert("不是闰年!");
	 }
}
</script>
</head>
<body>
	年份:<input type="text" id="input"/>
    <button οnclick="jsuan()"  >计算</button>
</body>
2.3、Switch语句
例:当输入一个数字时,显示对应的星期(如,输入1,显示星期一)
<HTML>
<head>
<meta charset="utf-8">
<title></title>
<script>
function jsuan(){
     var n=Number(input.value);
	 switch(n){
		case 1:alert("星期一");break;
	 case 2:alert("星期二");break;
	 case 3:alert("星期三");break;
	 case 4:alert("星期四");break;
	 case 5:alert("星期五");break;
	 case 6:alert("星期六");break;
	 case 7:alert("星期日");break;
	default :alert("您输入有误");
	 }
}
</script>
</head>
<body>
	请您输入数字:<input type="text" id="input"/>
    <button οnclick="jsuan()"  >计算</button>
</body>
</HTML>

2.4、Console.log()控制台打印,常用来测试中运用! 测试中不常用alert();
2.5、if…else :如果…否则
if…else 语句 - 当条件为 true 时执行代码,当条件为 false 时执行其他代码

例如:输入分数,判断成绩等级

请选择一个月份: 1 2 3 4 5 6 7 9 10 11 12 计算

2.8、转义字符
2.8.1引号:
用来在控制台输出一句带引号(单引号‘’或者“”)的一段话。
例如:在浏览器其中的Console中输入:console.log(““Hello word””);
则显示结果为:“Hello word”
2.8.2换行:\n
例如:console.log(““Hello word”\n—小明”);
显示结果 “Hello word”
—小明
2.8.2Tab键:\t
2.9、综合练习题
例如:根据一个数字日期,判断这个日期是这一年的第几天?
例如20170211,计算后的结果为42

请输入一个数字日期: 计算

3.1、while循环
例如:当你的月薪为10000时,每年会长1.05,50年后你的工资为多少?循环打印出来

3.2、for循环

3.3、打印100以内的奇数
例:

3.4、求100以内的偶数的和

3.5、求1-1/2+1/3-1/4…1/100的和

3.5、打印出1000-2000年中所有的闰年,并以每行10个的形式显示

3.6、打印出如下三角形(1)

3.7、打印出如下三角形(2)
#
##
###

还可以用p标签换行

3.8、计算100的结成100!=100999897…1

3.9、计算100-999直接的水仙花

显示结果
153 370 371 407
3.10、打印九九乘法表

1X1=1
1X2=2 2X2=4
1X3=3 2X3=6 3X3=9
1X4=4 2X4=8 3X4=12 4X4=16
1X5=5 2X5=10 3X5=15 4X5=20 5X5=25
1X6=6 2X6=12 3X6=18 4X6=24 5X6=30 6X6=36
1X7=7 2X7=14 3X7=21 4X7=28 5X7=35 6X7=42 7X7=49
1X8=8 2X8=16 3X8=24 4X8=32 5X8=40 6X8=48 7X8=56 8X8=64
1X9=9 2X9=18 3X9=27 4X9=36 5X9=45 6X9=54 7X9=63 8X9=72 9X9=81

第三章函数
一、函数的概念
二、使用函数好处
封装
三、如何使用函数、像函数输入数据(参数)
例如:

四、编写一个函数,计算三个数的大小,按从小到大的顺序输出

五、函数中的return关键字
Return关键字,用来然函数返回结果,如果没有return,执行完后,将会返回undefined
例如:编写一个函数,生成4位数字的验证码

六、变量的声明提升
即所有声明变量或声明函数都会被提升到当前函数的顶部。

注:如果将上面的m2(),提到m1()的位置,将会报错,这就与变量的声明提升有关!!
6.1.、计编写一个函数、在页面输出一个N行M列的表格,表格内容填充1-100的随机数字

6.2.、计求m-n之间的和

6.3.、计圆的面积

6.4.、编写函数digit(num,k),函数的功能是:求整数num从右边开始的第k位数字的值,如果num位数不足k位,则返回0;

6.5.、编写一个函数,计算任意两个数字之间所能组成的奇数个数,数字必须是个位数。比如:计算0-3之间能组成的奇数是01,03,13,21,23,31

6.6.、作用域:起作用的范围
作用域分为两种:局部作用域和全局作用域!
6.7、局部变量:在一个函数内部定义的变量,称之为局部变量,它的作用范围,只针对函数内部有效。
6.8.、全局变量:在顶层函数的外部,定义的变量,叫做全局变量(添加在Windows对象的变量,叫做全局变量)
变量不写var默认全局变量。
6.9.、堆和栈的概念
堆:
栈:指的是一种先进后出的存储结构
7.0.、面试题(下列内容将会打印出什么?)
var n=10;
function test(){
console.log(n); //undefied
var n;
console.log(n); //20
}
test();
解释:变量的声明提升原则:提升至该作用域的最前面
var n=10;
function test(){
var n=20;
console.log(n); //undefied
var n=20;
console.log(n); //20
}
test();

7.1.、递归
7.1.1、例如:递归计算100的阶乘!

7.1.2、递归计算裴波那契数列
例如:假设有一对兔子,三个月成年,到了第三个月,就可以生下一对小兔子。问,第N个月,总共会有多少兔子?
解析:
月份 1 2 3 4 5 6 7 8 9 10 11 12
兔子数
1 1 2 3 5 8 13 21 34 55 89 144

7.1.3、递归计算两个数的最大公约数

8、 构造函数
8.1、定义:new一个对象
第四章数组

1、数组:
一组数据、通常情况下,这一组数据的类型是一致的。
1.1、作用:
就是一个容器,将多个数据保存下来。
1.2、数组的创建方式:
第一种用json形式创建: var a=[10,23,56];
第二种用构造函数创建:var b=new Array(10);
注:*当传入一个参数,并且参数类型为数字,则表示数组的长度;
当传入多个,则表示数据。如下:

打印结果:5,35,66,88
4
1.3、数组的下标:

注意:*下标不可以大于数组的长度-1
1.4、练习:
1、当一个数组为空时,怎么往里面放入数据?

1.5、数组的遍历:
输出50到100之间的随机数,并且求其平均数:

1.6定义一个含有30个整型元素的数组,按顺序分别赋予从2开始的偶数;然后按顺序每5个数求出一个平均值,放在另一个数组中并输出

1.7 、for…in循环

1.8 、二维数组

练习:通过循环按行顺序为一个5*5的二维数组a赋1到25,然后输出该数组的坐下半角

显示结果:
Array(5)0: (5) [1, 2, 3, 4, 5]
1: (5) [6, 7, 8, 9, 10]
2: (5) [11, 12, 13, 14, 15]
3: (5) [16, 17, 18, 19, 20]
4: (5) [21, 22, 23, 24, 25]
1
6 7
11 12 13
16 17 18 19
21 22 23 24 25

1.9 、数组的值传递和引用传递(或者叫值的复制和地址的复制)
1.9.1 堆和栈
例1:

打印结果:10
例2:

打印结果:16, 22, 38
注:在计算机内存中,有一种特殊的变量,它会保存另一个变量的内存地址,我们管这种变量,就叫做指针,也叫做引用,也可以叫快捷方式!

1.9 、引用类型和对象
如果把对象比作文件,引用类型就是快捷方式
注:所有的对象是放在堆内存里面的。
1.10 、随机点名
1、第一种显示方式

随机点名

1.10 、数字验证码(练习)

1.15、练习
15.1编写函数map[arr]把数组中的每一位数都增加30%

15.2编写函数has(arr,60)判断数组中是否存在60这个元素,返回布尔类型。

15.3编写函数norepeat(arr)将数组的重复元素去掉,并返回新的数组

15.4 有一个从小到大排序好的数组。先输入一个数,要求按原来的规律将它插入数组中。

第五章ES5
1.1、ES5概念
1.2、严格模式
在代码的开头部分,增加一行
“use strict”;
例如:

1.3、数组新增的方法

1.4、字符串(String)
字符串常见的API:
chartAt:获取指定位置的字符
indexOf:获取指定字符串内容第一次出现的位置
substring 和slice截取字符串内容
split根据指定的字符创内容,将字符创进行分割,并以数组的形式返回
replace替换

1.5、查找和替换
例题:写一个小程序,要求替换下面一段文字里面的内容,替换后的字段要有颜色的改变

请输入要替换的内容: 请输入替换后的内容: 替换
Java是世界上最受人欢迎的语言,Java语言在程序开发语言中位居第一。

1.6、ASCII码和字符集
charCodeAt\fromCharCode
例1:

打印结果:100;
例2:

打印结果:n;
第六章Math
1.、Math内置对象的常见API
1.1Math的向上取整
Math.ceil(1.6);显示2
Math.ceil(1.00001);显示2
1.2Math的向下取整
Math.floor(1.9999999);显示1

Math.floor(-1.9999999);显示2
1.2Math的求最大值和最小值
Math.max(12,23,45,100);//显示结果100
Math.max(12,23,45,100);//显示结果12
1.3Math的随机数
Math.random();
如;打印0-10之间的随机数parseInt(Math.random()100);
1.4Math的四舍五入
Math.round(1.8);//显示结果2
Math.round(1.3);//显示结果1
1.5Math的平方根
Math.sqrt(9);//显示结果3
2、三角函数
var left=0;
while(left<100){
y=振幅
Math.sin(left*Math.PI/180)
}
3、勾股定理
Math.pow(a,2) +Math.pow(b.2)=Math.pow(c,2);
其中,a和b表示直角边,c表示斜边
4、椭圆公式
Math.pow(x/a,2) +Math.pow(y/b,2) =1;
5、曲线方程
y=ax^2 + bx + c
6、随机数的设定范围
例如:写一个小程序,显示1到20之间的随机数。

7、编写一个函数,获得一个十六进制的随机数颜色的字符串。例如#20CD4F

此程序有问题

第七章Date
1、日期对象

2、将日期格式转化为字符串类型
打印一个能控制输入“2017-10-22”“2017.10.22”“2017/10/22”

注:如果不传sep,则会报undefined,data2String(new Date(),“-”)——data2String(d),
上面的if判断语句也可以写成如下形式:
三木运算符:sep=sep==undefined?”/”:sep;
sep=sep || “/”;

3、将制定个数字符串转化成日期
1、第一种方法:利用构造函数,将字符串转化成日期对象
var d=new (“2008 10 22”)
2、第一种方法:利用构造函数
var d=new Date(1)//日期距离1970.1.1的毫秒数
例如:

3、写一个打印时间的小程序

注:学习这种思路!!!!!

第八章Windows

相关推荐

  1. html自学笔记面试问题

    2024-07-13 20:10:02       20 阅读
  2. 面试的GIT问题解答(含答案)

    2024-07-13 20:10:02       32 阅读
  3. C++面试100自动驾驶100

    2024-07-13 20:10:02       37 阅读
  4. 面试问题

    2024-07-13 20:10:02       34 阅读
  5. 面试问题

    2024-07-13 20:10:02       36 阅读
  6. 面试官常问题

    2024-07-13 20:10:02       41 阅读

最近更新

  1. docker php8.1+nginx base 镜像 dockerfile 配置

    2024-07-13 20:10:02       66 阅读
  2. Could not load dynamic library ‘cudart64_100.dll‘

    2024-07-13 20:10:02       70 阅读
  3. 在Django里面运行非项目文件

    2024-07-13 20:10:02       57 阅读
  4. Python语言-面向对象

    2024-07-13 20:10:02       68 阅读

热门阅读

  1. 【Go系列】 Go的错误处理

    2024-07-13 20:10:02       22 阅读
  2. 【学习笔记】Redis学习笔记——第13章 客户端

    2024-07-13 20:10:02       21 阅读
  3. 给基于cmake的工程添加uninstall功能

    2024-07-13 20:10:02       18 阅读
  4. js登陆验证

    2024-07-13 20:10:02       18 阅读
  5. Linux学习笔记(二)

    2024-07-13 20:10:02       19 阅读
  6. 2024 暑假友谊赛 1

    2024-07-13 20:10:02       22 阅读
  7. python合并列表的方法

    2024-07-13 20:10:02       23 阅读
  8. 中药学--更新中

    2024-07-13 20:10:02       16 阅读
  9. Mybatis-plus自动填充的使用以及常见问题

    2024-07-13 20:10:02       22 阅读