...
289 | ```
290 |
291 | *不推荐:*
292 |
293 | ```
294 | ...
295 |
296 |
387 | ```
388 |
389 |
390 |
391 | 快速记忆法:
392 |
393 | 好比找个人办事, 首先找到他,然后拉关系,最后看效果。
394 |
395 | #### 5.2 base 标签
396 |
397 | **语法:**
398 |
399 | ```html
400 |
401 | ```
402 |
403 |
404 |
405 | **总结: **
406 |
407 | 1. base 可以设置整体链接的打开状态
408 | 2. base 写到 之间
409 | 3. 把所有的连接 都默认添加 target="_blank"
410 |
411 | **pink老师 一句话说出他们:**
412 |
413 | > 全体链接~ 到 ~ 全体集合 所有链接 以新窗口打开页面 ~ 是
414 |
415 | #### 5.3 预格式化文本pre标签
416 |
417 | 标签可定义预格式化的文本。
418 |
419 | 被包围在 标签 元素中的文本通常会保留空格和换行符。而文本也会呈现为等宽字体。
420 |
421 | ```html
422 |
423 |
424 | 此例演示如何使用 pre 标签
425 |
426 | 对空行和 空格
427 |
428 | 进行控制
429 |
430 |
431 | ```
432 |
433 | **pink老师 一句话说出他们:**
434 |
435 | > 所谓的预格式化文本就是 ,按照我们预先写好的文字格式来显示页面, 保留空格和换行等。
436 |
437 | 有了这个标签,里面的文字,会按照我们书写的模式显示,不需要段落和换行标签了。但是,比较少用,因为不好整体控制。
438 |
439 |
440 |
441 | #### 5.4 特殊字符 (理解)
442 |
443 | 一些特殊的符号,我们再html 里面很难或者 不方便直接 使用, 我们此时可以使用下面的替代代码。
444 |
445 |
446 |
447 | **虽然有很多,但是我们平时用的比较较少, 大家重点记住 空格 大于号 小于号 就可以了,剩下的回来查阅。**
448 |
449 | **总结:**
450 |
451 | 1. 是以**运算符**`&`开头,以**分号运算符**`;`结尾。
452 | 2. 他们不是标签,而是符号。
453 | 3. HTML 中不能使用小于号 “<” 和大于号 “>”特殊字符,浏览器会将它们作为标签解析,若要正确显示,在 HTML 源代码中使用字符实体
454 |
455 | **团队约定**
456 |
457 | *推荐:*
458 |
459 | ```
460 | more >>
461 | ```
462 |
463 | *不推荐:*
464 |
465 | ```
466 | more >>
467 | ```
468 |
469 |
470 | #### 5.5 html5发展之路
471 |
472 |
473 |
474 |
475 |
476 |
477 |
478 | #### 5.6 什么是XHTML
479 |
480 | XHTML 是更严格更纯净的 HTML 代码。
481 |
482 | - XHTML 指**可扩展超文本标签语言**(EXtensible HyperText Markup Language)。
483 | - XHTML 的目标是取代 HTML。
484 | - XHTML 与 HTML 4.01 几乎是相同的。
485 | - XHTML 是更严格更纯净的 HTML 版本。
486 | - XHTML 是作为一种 XML 应用被重新定义的 HTML。
487 | - XHTML 是一个 W3C 标准。
488 |
489 | #### 5.7 HTML和 XHTML之间有什么区别?
490 |
491 | - XHTML 指的是可扩展超文本标记语言
492 | - XHTML 与 HTML 4.01 几乎是相同的
493 | - XHTML 是更严格更纯净的 HTML 版本
494 | - XHTML 是以 XML 应用的方式定义的 HTML
495 | - XHTML 是 2001 年 1 月发布的 W3C 推荐标准
496 | - XHTML 得到所有主流浏览器的支持
497 | - XHTML 元素是以 XML 格式编写的 HTML 元素。XHTML是严格版本的HTML,例如它要求标签必须小写,标签必须被正确关闭,标签顺序必须正确排列,对于属性都必须使用双引号等。
498 |
499 | # 6. @深入阅读
500 |
501 | [HTML5的崛起之路](http://www.chinaz.com/manage/2015/0720/424831.shtml)
502 |
503 | # 7. 预习内容
504 |
505 | - 表格标签
506 |
507 | - 能够通过表格标签能够写出一个简版表格数据展示
508 |
509 | 例如:
510 |
511 |
512 |
513 | 可以把你今天学习的内容放在表格内,再次作为总结
514 |
515 |
--------------------------------------------------------------------------------
/web前端最全笔记/biji_files/z_stat.php:
--------------------------------------------------------------------------------
1 | (function(){function p(){this.c="1253473928";this.ca="z";this.Y="";this.V="";this.X="";this.D="1555073346";this.$="z10.cnzz.com";this.W="";this.H="CNZZDATA"+this.c;this.G="_CNZZDbridge_"+this.c;this.O="_cnzz_CV"+this.c;this.P="CZ_UUID"+this.c;this.K="UM_distinctid";this.A="0";this.J={};this.a={};this.Ca()}function h(a,
2 | b){try{var c=[];c.push("siteid=1253473928");c.push("name="+g(a.name));c.push("msg="+g(a.message));c.push("r="+g(l.referrer));c.push("page="+g(e.location.href));c.push("agent="+g(e.navigator.userAgent));c.push("ex="+g(b));c.push("rnd="+Math.floor(2147483648*Math.random()));(new Image).src="http://jserr.cnzz.com/log.php?"+c.join("&")}catch(d){}return!0}var q=function(){for(var a=document.getElementsByTagName("script"),b=0,c=a.length;bthis.a.b[b].h&&delete this.a.b[b];this.I()}catch(c){h(c,
9 | "cCV failed")}},I:function(){try{var a=[],b;for(b in this.a.b){var c=[];c.push(b);c.push(this.a.b[b].da);c.push(this.a.b[b].h);var d=c.join("|");a.push(d)}if(0===a.length)return!0;var f=new Date;f.setTime(f.getTime()+157248E5);var k=this.O+"=";this.b=g(a.join("&"));k+=this.b;k+="; expires="+f.toUTCString();l.cookie=k+"; path=/"}catch(n){h(n,"sCV failed")}},sa:function(){try{return this.N=e.location.href}catch(a){h(a,"gCP failed")}},o:function(){try{return this.a.Ha=l.referrer||""}catch(a){h(a,"gR failed")}},
10 | ua:function(){try{return this.a.B=e.navigator.systemLanguage||e.navigator.language,this.a.B=this.a.B.toLowerCase(),this.a.B}catch(a){h(a,"gL failed")}},xa:function(){try{return this.a.ba=e.screen.width&&e.screen.height?e.screen.width+"x"+e.screen.height:"0x0",this.a.ba}catch(a){h(a,"gS failed")}},w:function(){try{return this.a.Da=this.i("ntime")||"none"}catch(a){h(a,"gLVST failed")}},T:function(){try{return this.a.ea=this.i("ltime")||(new Date).getTime()}catch(a){h(a,"gFVBT failed")}},wa:function(){try{var a=
11 | this.i("cnzz_a");if(null===a)a=0;else{var b=1E3*this.w(),c=new Date;c.setTime(b);(new Date).getDate()===c.getDate()?a++:a=0}return this.a.La=a}catch(d){h(d,"gRT failed")}},va:function(){try{return this.a.C=this.i("rtime"),null===this.a.C&&(this.a.C=0),0b;b++)if(-1
53 |
54 | css: /* */
55 |
56 | js: /* */ 多行 //单行
57 |
58 | ## js 的几种输出方式:
59 |
60 | 1.alert: 弹出警示框
61 | 2.console.log("") 控制面板!!!!
62 | 3.document.write("1234"); 文档打印!!!
63 | 4.prompt("请输入",123); 弹出输入框 参数 1:提示信息 参数 2: 默认值
64 |
65 | ## 变量:
66 |
67 | var num = 10;
68 | 声明一个变量名叫 num 值是 10;
69 |
70 | ### 注意:
71 |
72 | 1.即声明又给值 结果是当前的值
73 | 2.只声明不给值:undefined
74 | 3,没有声明直接给值 浏览器自动加上
75 | 4.既没有声明又没有给值 结果报错;
76 | 5.一个变量只能存储一个值!!
77 |
78 | ### 声明变量的几种方式:
79 |
80 | 1.var num = 10; var num1 = 20;
81 | 2.var num=10,num1=20;
82 | 3.var num,num1;
83 | num=10;
84 | num=20;
85 |
86 | ### 变量的命名规则:
87 |
88 | 1.由数字 字母 下划线 \$符号 组成
89 | 2.不能以数 字开头
90 | 3.不能使用 关键字 保留字
91 | 4.见名知意
92 | 5 遵循驼峰命名法 uName userSchool
93 | 6.变量名不能超过 255 个字符;
94 |
95 | ## js 的数据类型:
96 |
97 | ### 1.基本数据类型
98 |
99 | 1.数值型(十进制)
100 |
101 | 0-所有的自然数 小数 负数 NaN:不是一个数字
102 |
103 | 2.字符串
104 |
105 | 只要加引号都属于字符串 特殊字符 只适用于 console.log() \n 换行 "un'de'fined" 'und"ef"ined'
106 | str.length: 访问字符串的长度
107 | str[索引|下标] 访问对应的每一个字符 索引从 0 开始
108 | 只要与字符串相加 就会相连!!!
109 |
110 | 3.布尔型
111 |
112 | true|false
113 | 如果参与运算: true=1 false=0
114 |
115 | 4.undefined:
116 |
117 | 只声明没给值
118 |
119 | 5.null(对象):
120 |
121 | 一般清空内存;
122 |
123 | typeof 检测数据类型
124 |
125 | isNaN判断是否是数字 如果是数字返回false 不是数字返回true
126 | "isNaN会默认尝试把内容转换成数字"!!
127 |
128 | ### 1.转换为字符型:
129 |
130 | 强制类型转化:
131 |
132 | num.toString()
133 | String(num)
134 |
135 | 隐式类型转换:
136 |
137 | 10+""
138 |
139 | ### 2.转换为数值类型:
140 |
141 | 强制类型转化:
142 |
143 | parseInt(): 1.取整。
144 | parseFloat(); 1.保留小数;
145 | Number() 1.取整--保留小数
146 |
147 | 三者的区别:
148 |
149 | parseInt
150 | 结果是整数 字母在前 NaN 字母在后 干掉字母(保留整数)!
151 | parseFloat
152 | 结果是小数 字母在前 NaN 字母在后 干掉字母(保留小数)!
153 | Number
154 | 只要有字母结果 NaN
155 |
156 | 隐式类型转换:
157 |
158 | 1. 直接加 + 号
159 | 2. -0 /1 \*1
160 |
161 | ### 3.转换为布尔类型:
162 |
163 | 强制类型转换:
164 |
165 | Boolean()
166 |
167 | 隐式类型转换:
168 |
169 | !! 双重否定等于肯定
170 |
171 | 转换成 false 的情况:
172 |
173 | 0 undefined null NaN false "" 都是 false;
174 |
175 | # js 第二天:
176 |
177 | ## 算数运算符:
178 |
179 | + - \* / %
180 | 表达式: var num = 10; num+1
181 |
182 | ### 前++与后++:
183 |
184 | var a = 1;
185 | a++:先返回 在自加
186 | ++a:先自加 在返回
187 |
188 | 区别:
189 |
190 | 1).只有一个表达式的时候两者没有区别!!
191 | 2).当有多个表达式或者直接输出 要按照两者的语法规则.
192 |
193 | ## 比较运算符: > >= < <= == != === !==
194 |
195 | ==:只判断值是否相等
196 | ===:判断值与数据类型是否相等;
197 |
198 | ## 逻辑运算符:
199 |
200 | && || !
201 | &&:一错全错;
202 | ||:一对全对
203 | !;取反
204 | ! > && >||
205 |
206 | ### 短路运算:
207 |
208 | &&找错:
209 |
210 | 如果有错直接输出! 如果一个表达式没有错的返回 最后一个! 0 null false undefined NaN "";
211 |
212 | ||找对:
213 |
214 | 如果有对直接输出! 如果一个表达式没有对的返回 最后一个!
215 |
216 | ## if..else..
217 |
218 | 如果(){
219 |
220 | }否则{
221 |
222 | }
223 |
224 | ## 三元表达式:
225 |
226 | 10>5?alert(10):alert(5)
227 |
228 | ## switch:
229 |
230 | switch (参数){
231 | case "匹配项“:
232 | 执行:
233 | break;
234 | }
235 |
236 | ### 注意事项:
237 |
238 | 1.case 后面不要加判断条件
239 | 2.case 匹配的全等(匹配值与数据类型)
240 | 3.每个 case 后面加 break; ###语法:
241 |
242 | # js 第三天:
243 |
244 | for(初始变量;循环的终止条件;循环的增量){
245 | 执行的代码块
246 | }
247 |
248 | for 循环 与 while 循环
249 |
250 | for 循环一般用于知道循环次数;
251 | while 循环 不知道循环次数;
252 |
253 | while 与 do..while 区别:
254 |
255 | while:先判断在执行
256 | do..while:先执行在判断
257 |
258 | continue break 区别:
259 |
260 | continue:跳出当前循环 继续下一次循环
261 | break: 跳出整个循环
262 |
263 | # js 第四天:
264 |
265 | ## 什么是数组:
266 |
267 | 一组数据数据的集合
268 |
269 | ## 为什么使用数组:
270 |
271 | 方便对数据的统一管理
272 |
273 | var arr = ["张三","李四"];
274 | var a = "张三";
275 | var b = "李四"; ##数组的使用:
276 |
277 | ### 1.创建数组:
278 |
279 | 1.创建空数组 var arr = [];
280 | 2.创建空数组 var arr = new Array();
281 | 3.创建有元素的数组 var arr = [1,2,3,4,5];
282 | 4.创建有元素的数组 var arr = new Array(1,2,3,4,5);
283 |
284 | []与 new Array 区别:
285 |
286 | 当只有一个数据(数字) new Array 代表数组的长度 [] 代表一个数据
287 |
288 | ### 2.数组的使用:
289 |
290 | 1.获取元素:
291 |
292 | 1.下标(索引) 默认的索引从 0 开始 数组名[索引值] 当访问没有定义内容的数组 结果是 undefined
293 | 2.length 数组的长度 长度从 1 开始
294 |
295 | 2.数组里面嵌套数组:二维数组
296 |
297 | ### 3.数组的改变:
298 |
299 | 1.数组可以动态改变
300 | 2.清空数组 数组名.length = 0 数组名 = null
301 | var arr = [1,2,3]
302 |
303 | ### 4.数组可以存什么:
304 |
305 | 数组可以存储任意数据类型的元素
306 | 一般数组存储一种数据类型
307 |
308 | ### 5.数组的方法:
309 |
310 | push: 数组.push(元素) 向末尾添加元素
311 | pop: 数组.pop()删除数组末尾的元素
312 | unshift: 数组.unshift(元素) 数组的前面添加内容
313 | shift: 数组.shift()删除数组的第一个元素
314 |
315 | ### 什么是函数:
316 |
317 | 可重复使用的代码块
318 |
319 | ### 为什么使用函数:
320 |
321 | 1.减少代码量
322 | 2.使代码有模块化
323 |
324 | ### 函数的使用: 函数不调用自己不执行
325 |
326 | 定义函数:
327 |
328 | 1. function fn(){
329 | 执行的代码块
330 | }
331 |
332 | fn 是函数名;
333 |
334 | 2. var fn = function(){
335 | 执行的代码块
336 | }
337 |
338 | 函数的调用:
339 |
340 | 函数名();
341 |
342 | ### 函数的参数:
343 |
344 | 形参:形式上的参数 定义函数时候的参数 本质是变量
345 | 实参:实际上的参数 调用函数时候的参数 本质是数据
346 |
347 | ### 参数个数的问题
348 |
349 | 1.当实参大于形参:多余的实参忽略不计
350 | 2.当形参大于实参: 多余的形参赋值给 undefined
351 |
352 | 总结:实参与形参要相匹配
353 |
354 | ### return:返回值
355 |
356 | 一个函数可以有返回值 也可以没有
357 |
358 | 1.如果只是单纯的打印(看到值) 可以不加 return
359 | 2.当用函数实现某种特定的功能 要加 return
360 | 3.当遇见 return 直接退出函数体 下面不在执行
361 | 4.一个函数只有一个 return
362 | 5.不加 return 默认返回 undefined
363 |
364 | # js 第五天:
365 |
366 | ## arguments(伪数组)
367 |
368 | 伪数组:具有数据的一些属性 但是也不具有数组的一方法
369 |
370 | arguments:实参的对象 只要创建函数默认就有 arguments
371 |
372 | 一般 形参多少 实参多少
373 |
374 | arguments 用的不多!!!
375 |
376 | ## 函数以参数的形式传递----回调函数
377 |
378 | ## 作用域:
379 |
380 | 全局作用域:
381 |
382 | 在函数外部都是全部作用域
383 |
384 | 局部作用域:
385 |
386 | 在函数内部都是局部作用域
387 |
388 | 全局变量:
389 |
390 | 在任何地方都可以访问
391 |
392 | 局部变量:
393 |
394 | 只能在当前作用域下访问
395 |
396 | 总结
397 |
398 | 局部可以访问全局 全局不可以访问局部
399 |
400 | ### 作用域链的基本原理:
401 |
402 | 当调用函数---会把函数推送到执行栈(局部作用域)----全局作用域与函数的链式称为作用域链。
403 |
404 | 0 级作用域链----1 级作用域链
405 |
406 | ## 预解析:
407 |
408 | 当浏览器加载的时候 会有提前预解析的过程;
409 |
410 | 提升: var num = 10; var num;
411 | 提升: function fn(){} function fn(){}
412 |
413 | 注意:
414 |
415 | 1.在函数内部 变量名与形参重名以形参为主!!
416 | 2.函数内部不加 var 关键字是全部变量(不能与形参重名)
417 | 3.函数定义当前作用域 与函数调用没有关系(不会改变当前函数的作用域)
418 |
419 | ## 对象: 万物皆对象!!!!
420 |
421 | ### 1.键值对的集合。
422 |
423 | ### 2.功能集与数据集的集合
424 |
425 | 数据集的描述: 属性:属性值
426 | 功能集的描述: 函数名:函数
427 |
428 | ### 3.普通函数与对象的函数:
429 |
430 | 对象的函数前面加对象
431 |
432 | ### 4,对象的获取:
433 |
434 | 对象.属性名
435 | 对象["属性名"]
436 | obj.方法()
437 |
438 | ### 对象的几种创建方式:
439 |
440 | 1.创建空对象: 在动态添加值
441 |
442 | var obj = {};
443 | obj.name = "kf";
444 | obj.age = 18;
445 | obj.sex = "nan";
446 |
447 | 2.创建有内容的对象
448 |
449 | var obj = {
450 | name:"kf",
451 | age:"18",
452 | sex:"nan"
453 | }
454 |
455 | 3.创建空对象:
456 |
457 | var obj = new Object();
458 | obj.name = "kf";
459 | obj.age = 18
460 |
461 | 4.创建有内容的对象:
462 |
463 | var obj = new Object({
464 | name:"kf",
465 | age:18
466 | })
467 |
468 | ### 对象的封装:
469 |
470 | 工厂模式:
471 |
472 | function person(name, age, sex) {
473 | //var obj = {};
474 | var obj = new Object()
475 | obj.name = name;
476 | obj.age = age;
477 | obj.sex = sex;
478 | return obj;
479 | }
480 |
481 | 构造函数:
482 |
483 | function Person(name,age,sex){
484 | this.name = name;
485 | this.age = age;
486 | this.sex = sex
487 | }
488 | var per = new Person("tongtong",30,"男")
489 | var per = person("jujie",50,"男");
490 |
491 | ### new 的执行过程:
492 |
493 | 1.创建空对象(创建内存地址)
494 | 2.改变 this 指向当前对象
495 | 3.执行构造函数的代码
496 | 4.返回 this;
497 |
498 | 面向过程:
499 |
500 | 举行晚会: 1.找演员--->2.找吃的--->3.灯光摄影--->4.抽奖活动
501 |
502 | 面向对象:
503 |
504 | 举行晚会: 1.找演员--->2.找吃的--->3.灯光摄影--->4.抽奖活动
505 |
506 | # js 第六天:
507 |
508 | ## 数学对象:
509 |
510 | 1.Math.PI
511 | 2.Math.max(1,3,4)
512 | 3.Math.min()
513 | 4.random()
514 | 5.floor()
515 | 6.ceil
516 |
517 | ## 日期对象:
518 |
519 | ### 构造函数:
520 |
521 | 1.var date = new Date();
522 | 2.可以添加参数获取的是参数对应的日期
523 | 3.不添加参数 获取的是当前日期
524 |
525 | ### 方法:
526 |
527 | 1.获取年: getFullYear()
528 | 2.获取月: getMonth() 获取月要加1
529 | 3.获取日期:getDate()
530 | 4.获取星期:getDay 星期日是0
531 | 5.获取时: getHours()
532 | 6.获取分:getMinutes();
533 | 7.获取秒:getSeconds();
534 |
535 | ### 获取毫秒值:
536 |
537 | 获取的距离 1970 年 1 月 1 日
538 |
539 | 1.获取的方式
540 |
541 | 1.date.valueOf()
542 | 2.date.getTime()
543 | 3.+new Date()
544 | 4.h5 新增 Date.now()
545 |
546 | 2.typeof 判断
547 |
548 | 基本数据类型
549 |
550 | 3.判断对象(数组)
551 |
552 | 1.instanceof arr instanceof Array;
553 | 2.Array.isArray(arr);
554 |
555 | 4.数组的方法:
556 |
557 | push: 数组.push(元素) 向末尾添加元素
558 | pop: 数组.pop()删除数组末尾的元素
559 | unshift: 数组.unshift(元素) 数组的前面添加内容
560 | shift: 数组.shift()删除数组的第一个元素
561 | reverse():翻转数组
562 | arr.sort(function (a, b) { 排序
563 | return a - b 升序
564 | return b - a 降序
565 | })
566 | indexOf():查找元素 没有找到对应的元素 返回-1 找到返回对应的索引;
567 | join() 参数: 把数组以参数的形式分隔 如果不传默认是逗号分隔;
568 | concat:合并数组
569 | slice: 不修改原数组 截取 (开始索引,结束索引) 不包含结束索引 如果只传递一个参数 从当前参数截取到 最后。
570 | splice:修改原数组 截取 (开始索引,截取的长度,要替换的元素)
571 |
572 | ### 基本包装类型: 万物皆对象!!!!
573 |
574 | 基本数据类型 通过包装 转化成复杂数据类型;
575 |
576 | 1. 后台的调用 方便程序员使用一些属性和方法----基本包装类型
577 | 计算机默认:
578 | 创建对象
579 | var str = "hello";
580 | var str1 = new String("hello");
581 | 把变量给当前变量
582 | str = str1;
583 | 内存释放 销毁
584 | str1 = null
585 | 基本包装类型与复杂数据类型的区别:
586 | 1.都可以使用字符串的一些方法与属性
587 | 2.基本包装类型创建完之后立刻销毁。
588 |
589 | 1.字符串:
590 |
591 | 面试题: 如何优化代码的性能:
592 |
593 | 字符串的不可变; 用数组解决
594 |
595 | 字符串:重新开辟内存空间 原来的内容不会销毁
596 | 数组: 不会重新开辟内存空间 会把原来的覆盖。
597 | var str = "";
598 | var arr = [];
599 | for (var i = 0; i < 100; i++) {
600 | arr.push(i)
601 | }
602 | console.log(arr.join(""));
603 |
604 | indexOf:查找元素
605 |
606 | indexOf("元素",开始查找的索引) 找到返回索引 找不到返回-1
607 |
608 | str.charAt(索引):查找对应的元素
609 |
610 | str[0] 查找对应的元素
611 |
612 | concat 拼接字符串
613 |
614 | toUpperCase:转化大写
615 |
616 | toLowerCase 转化小写
617 |
618 | substring(2,5) 字符串的截取
619 |
620 | split("-") 转化成数组
621 |
622 | ### 基本数据类型与复杂数据类型的存储方式:
623 |
624 | 基本数据类型存储在栈里面 本质是真是的数据;
625 | 复杂数据类型存储在对里面 对里面本质真是的数据 栈里面存的是地址;
626 |
--------------------------------------------------------------------------------