---恢复内容开始---

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);
View Code

 

 

 

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());

在传递的参数为对象的时候变化是双向传递的 也就是里边的修改 在外边也会发生变化

 

posted on 2019-09-07 09:41  渐凸强、啊哈  阅读(129)  评论(0编辑  收藏  举报