---恢复内容开始---
HTML 定义了网页的内容
CSS 描述了网页的布局
JavaScript 网页的行为
一种轻量级编程语言
可以将javascript(先包含在<script></script>)放置在head或者body当中,也可以通过外边引入<script src="url"></script>
输出可以通过弹窗alert()或者写入文档document.write(); document.innerHTML =
注释://单行注释或者/**/多行注释
utf8当中的实体https://www.runoob.com/charsets/ref-html-utf8.html
代码块以左花括号开始,以右花括号结束。
代码块的作用是一并地执行语句序列。
在 JavaScript 中,用分号来结束语句是可选的。
代码折行输出
document.write("你好 \
世界!");
变量名称:
必须以字母开头或者可以使用$和_ 而且大小写敏感
经常会声明无值的变量。未使用值来声明的变量,其值实际上是 undefined。
var test;//实际上此时test为undefined 在C++当中此时test应该为其当前指向空间以前所保留的值
如果重新声明 JavaScript 变量,该变量的值不会丢失:
var x; // x 为 undefined var x = 5; // 现在 x 为数字 var x = "John"; // 现在 x 为字符串
在定义对象的时候,里边的属性名可以添加引号业可以不加,但实际上是看成字符串的
var obj = { 'username':"webcyh" } console.log(obj.username); console.log(obj['username']);
Undefined 这个值表示变量不含有值。
可以通过将变量的值设置为 null 来清空变量。
创建对象方法
func:function(){}
func(){}
函数返回 返回值是可选的
局部变量:
只在函数内部可以访问
并且生存期在函数执行完就销毁
全局变量:
在网页中的任何地方可以访问
而且至于关闭网页才会销毁
非严格模式下:
未生命的变量可以通过delete删除
没有生命的变量默认属于全局变量window
事件
字符串:
可以跟数组一样使用下标的方式访问
可以获得长度str.length
字符串也可以是一个对象
var x = "John"; var y = new String("John"); typeof x // 返回 String typeof y // 返回 Object 尽量不要使用字符串对象 ,这样会拖慢执行速度
字符串方法
=== 完全等于 值和类型
typeof [1,2]返回object 数组为特殊的对象
typeof null 返回object 空对象引用
typeof 一个没有值的变量会返回 undefined。
null 和 undefined 的值相等,但类型不等:
变量置空使用undefined 对象置空使用null
typeof "John" // 返回 string typeof 3.14 // 返回 number typeof NaN // 返回 number typeof false // 返回 boolean typeof [1,2,3,4] // 返回 object typeof {name:'John', age:34} // 返回 object typeof new Date() // 返回 object typeof function () {} // 返回 function typeof myCar // 返回 undefined (如果 myCar 没有声明) typeof null // 返回 object
constructor 属性返回所有 JavaScript 变量的构造函数。
使用constructor判断是否为数组myArray.constructor.toString().indexOf("Array") > -1;
window.String()和Number.toString()都可以转换为字符串
转换为字符串
console.log(typeof String(12+2)); console.log(typeof (12+3).toString());
console.log(typeof 12);
Number("12")将字符串转为数字 parseInt parseFloat
正则表达式的使用
/正则表达式主体/修饰符(可选)
正则表达式通常应用在在以下两个方法当中
search() 方法 用于检索字符串中指定的子字符串,或检索与正则表达式相匹配的子字符串,并返回子串的起始位置。var n = str.search("Runoob");
replace() 方法 用于在字符串中用一些字符替换另一些字符,或替换一个与正则表达式匹配的子串。 var txt = str.replace(/microsoft/i,"Runoob");
上面的函数说明可以使用正则表达式替代上面的字符串参数
修饰符:i不区分大小写 g全局匹配 返回所有匹配到的字符串 m多行匹配
正则表达式模式
括号表达式
元字符
量词
var str = "he2ll|o"; console.log(typeof str); console.log(str.constructor);//创建字符串的构造方法 console.log(str.charAt(1)); console.log(typeof String(12+2)); console.log(typeof (12+3).toString()); console.log(typeof 12); console.log(Boolean(1)); console.log(str.search(/[ho]/im));// console.log(str.search(/(l|o)/im)); console.log(str.search(/^\d/i));//查找数字开头的 //在这里使用全局搜索还是会返回第一次找到的位置 /* [asn]这里边任何一个字符 [1-9] 1到9中的任何数字 (x|y)以分割|分开的字符 类似于在[xy]上找 元字符 \d查找数字 \s查找空白字符 \b匹配单词边界 \uxxxx查找十六进制 量词 n+ 匹配至少包含一个 n*匹配零个或者多个n的字符 n?匹配零个或者一个n字符
\w 为为字母下划线和数字 */
RegExpt对象
test()方法也是用于匹配某个正则表达式 如果匹配成功返回true
var patt = /e/; patt.test("The best things in life are free!");
使用exec()
返回匹配的结果
例子
/*是否带有小数*/ function isDecimal(strValue ) { var objRegExp= /^\d+\.\d+$/; return objRegExp.test(strValue); } /*校验是否中文名称组成 */ function ischina(str) { var reg=/^[\u4E00-\u9FA5]{2,4}$/; /*定义验证表达式*/ return reg.test(str); /*进行验证*/ } /*校验是否全由8位数字组成 */ function isStudentNo(str) { var reg=/^[0-9]{8}$/; /*定义验证表达式*/ return reg.test(str); /*进行验证*/ } /*校验电话码格式 */ function isTelCode(str) { var reg= /^((0\d{2,3}-\d{7,8})|(1[3584]\d{9}))$/; return reg.test(str); } /*校验邮件地址是否合法 */ function IsEmail(str) { var reg=/^\w+@[a-zA-Z0-9]{2,10}(?:\.[a-z]{2,4}){1,3}$/; return reg.test(str); }
异常处理
自定义异常
//实现匹配一个字符串当中的所有网址 try{ if(1){ throw "出现异常"; } }catch(e){ console.log("自定义异常"+e); }finally{ console.log("我就是要执行"); }
断点
debugger;
变量提升
JavaScript 中,函数及变量的声明都将被提升到函数的最顶部。
JavaScript 中,变量可以在使用后声明,也就是变量可以先使用再声明。
JavaScript 只有声明的变量会提升,初始化的不会。
严格模式下不会变量提升
""use strict
var a = 2; var b =4; var c; eval("c=a+b"); console.log(c);
json 轻量级数据交换语言
全称:JavaScript Object notation
写法:
"sites":[ {"name":"Runoob", "url":"www.runoob.com"}, {"name":"Google", "url":"www.google.com"}, {"name":"Taobao", "url":"www.taobao.com"} ]
JSON.parse(text)将其转换为js对象
JSON.stringify();将字符串转换为json数据
void 指定要计算一个表达式但没有返回值
该操作符指定要计算一个表达式但是不返回值
写法:
void(func) void:func(()) javascript:void(func()) javascript:void func()
href="#"和href="javascript:void(0)"的区别
前者为锚默认为href="#top" 这个是会跳转的
后者为死链接
javascript代码规则
变量名为驼峰命名法className
全局变量为大写 常量也是大写
运算符要有空格
代码tab缩进
定义对象的时候需要注意换行
html的后缀名字可以为html 和htm
函数:
函数不是执行语句所以不需要加分号
在JavaScript当中函数可以作为表达式 将函数赋值给一个变量 这样这个 变量可以当中函数来使用 注意这里的函数式匿名函数 而且这个函数式执行表达式 需要使用分号结尾
自调用的函数表达式
(function(){
})()
函数是一个对象 通过funcName.toString()将函数转换为字符串
函数参数
在JavaScript当中 参数默认值为undefined 或者可以如下面写法
function get(x,y){ console.log(x); x = x||1; y = y||2; return x+y; }//在未传递值得时候 值为undefined 在上面的x = x||1;意思是当x为undefined(false)的时候取后边的值1 console.log(get());
在传递的参数为对象的时候变化是双向传递的 也就是里边的修改 在外边也会发生变化