JavaScript笔记。

alert 控制浏览器输出一个警告框

document.write()可以向body输出一个内容

console.log( )箱控制台输出内容

js代码可以写在标签中,但是不推荐,不方便维护,不推荐使用

可以将js代码写在标签onclick中,或者标签a中

双引号中嵌套的需要写单引号

 JS也会有外部js代码文件 用.js 结尾 通过script标签引入,可以在不同页面重复,也可以利用到浏览器的缓存机制,推荐使用 scripts一旦用于引入外部scripts文件,内部写的就会失效,除非在写一条scripts标签用于编写内部js代码,从上到下执行

/*     多行注释

     */

//。。。单行注释

var关键字声明变量  可以通过自变量对变量进行声明

var a=123;

 console.log(a);      -------   123

标识符不能以数字开头 不能用ES的关键字或者保留字

标识符一般都用驼峰命名法:开头字母小写,单词开头字母大写,其余小写(也可用中文,但是不建议)

string:字符串            基本数据类型

number:数值            基本数据类型

Boolean:布尔值          基本数据类型

null:空值                基本数据类型

undefined:未定义        基本数据类型

object:对象              引用数据类型

var str = “hello”;      字符串

前面可以加转义字符 \      \n表示换行     \t制表符   

number.max_value  js中的最大值

infinity  :正无穷

typeof +变量

console.log(typeof a); 检查类型

用typeof检查infinity也会返回number

js进行浮点数的运算可能得到不精确的数字 千万不要使用js进行对精确度较高的运算

NaN   :not a number  类型也是 number

布尔值只有两个值  truezhen  false假 主要做逻辑判断

Null类型的只有一个值:  null 专门用来表示为空的对象  typeof检测返回值为object

未赋值的变量检测为undefined(未定义)

强制类型转换

  主要转换成 string number  Boolean

方式一:调用被转换数据类型的tostring()方法,不会影响到原变量 但是null和undefined两个值没有.tostring方法会报错

 var a =123;  

var b= a.tostring()  

b 为字符串类型(也可以再写a)

方法二:调用String()函数,将被转换的数据作为参数传递给函数 转换谁就写在括号里 可以转换null和undefined,对于number和Boolean实际上就是调用tostring()方法

   a = 123;

a=String(a);

转换为number

  转换方式一:使用number()函数

                                         a = “123”

                                      a=number(a)

如果字符串有非法数字(undefined)就会变成NaN  如果是一串空格 会变成0   布尔值转数字 true-1  false-0   null-0

转换方式二:

  parseInt ()把字符串转换为一个整数

  parseFloat()把一个字符串转换为一个浮点数

parseInt ()可以将有效的整数提取出来转化为number  有中断的则中断 parseFloat()可以获得有效的小数,有中断也会中断

a=123px

a=parseint(a)-----123

如果对非string会先转换成string再转换成number

       表示16进制数字,要用0x开头    例如: a=0x123;

表示8进制数字,要用0开头      

表示2进制数字,需要以0b开头,但是不是所有浏览器都支持      将字符串转换为数字,例如”070”有的浏览器会当成十进制解析,有的浏览器会当成八进制解析  可以在转换时加入第二个参数,指定数字的进制  :  

a=parseInt(a,10); 当成十进制解析

转换为Boolean 

     使用Boolean函数:a=Boolean(a) 

数字转Boolean 除了0和NaN是false,其余都是true

字符串转Boolean,除了空串,其余都是true

null和undefined都会转换为false

对象也会转换为true

运算符

  +任何数和NaN运算都得NaN,字符串相加会拼成一个字符串  拼串: 任何值和字符串做加法运算都会想转换为字符串,再进行拼串。

var c = 123;

c=c+”” 可以利用这一特点,将一个任意的数据类型转换为字符串

    —:除了加法,其余都会转换为number

*

/

可以对一个数据类型使用+号,将其转换为number

a=”18”;

a=+a;

自增和自减  ++ -- 可以后++和前++ 都会使原变量+1 不同的是a++和++a 的值不同  a++是自增前的值,++a是自增后的值

var a=1;

a++;  (或者++a;)

 自减同上。

JavaScript逻辑运算符:

! 非              &&与          ||或

 如果对非布尔值进行,会先转换为布尔值在进行取反,可以用此特性转换一个其他的数据类型为布尔值(做两次非运算!!)

与:有一个false返回值就是false

或:两个值只要有一个true就返回true 两个false才返回false

     && 非布尔值的情况:对于非布尔值,会将其转换为布尔值在运算并且返回原值 ,如果第一个值为true,一定返回第二个,第一个值为false,直接返回第一个值

关系运算符 :

   关系成立返回true 不成立返回false  

       对于非数值比较,先转换成数字在比较  任何和null比较都是false,如果两侧都是字符串,会比较字符的编码,一位一位进行比较,两位一样就比下一个,可进行英文排序,比较中文没有意义

 ==  当使用==比较两个值的时候类型不同,自动类型转换,大部分情况转换为

if语句:

   if(条件&&条件2){

       执行语句;

}

if(){

   。。。。。。

}elseif(){

   。。。。。。      只会有一个代码块被执行

}else{

   。。。。。。。

}

prompt   弹出一个提示窗,可输入,,作为返回值

返回值为String类型的

Switch语句:  switch(条件表达式){

                     Case 表达式:

                                            语句

                                          Break;

                     Case 表达式:

                           语句

                                           Break;

                     Default:

                           语句

                                           Break;       

}

Switch 里的条件表达式会和case后的表达式的值进行比较

break用来退出switch语句和循环语句;所有执行都为false 则执行default

while循环:

      三个步骤:1初始化变量    2设置一个条件表达式   3更新表达式,每次更新初始化变量

 Do…….while   先斩后奏,先执行再判断

For 循环:

 For(初始化表达式;条件表达式;更新表达式){

      语句。。。。。。

}

break语句会立即终止和他最近的循环语句,

可以为循环创建一个标签(label)break后加 label将会结束指定的循环

Continue可以用来跳过当次循环。只能用于循环

Console.time()  可以开启一个计时器,需要一个字符串作为计时器的标识  console.timeEnd();  用来停止计时器,

对象:

       Object:引用数据类型

对象的分类:1、内建对象  

2.宿主对象   B OM(浏览器对象模型) DOM(文档对象模型)

3.自建对象   开发人员自己创建的对象

Var obj = new object();-----构造函数:专门用来创建对象的函数  

向对象中添加属性:  对象.属性名 = 属性值;

删除对象属性: delete 对象.属性名

对象的属性名不强制要求遵守标识符的规范,什么名字都可以,但是尽量按着规范使用,如果使用特殊的属性名,不能用”.”的方式操作,用另一种方式:

对象[“属性名”] = 属性值

(obj[“123”]);取的时候也要这么取:

运算符的优先级:

使用对象字面量创建对象   var obj = {属性名:属性值,属性名:属性值}

函数:function 函数名([形参1,形参2,。。。。。形参N]){

      语句….

}

Function fun2 (){

Console.log(““aaaaaaa”)

}      调用办法:fun2();

函数表达式创建函数:

Var 函数名 = function([形参1,形参2,。。。。。形参N]){

      语句….

}

调用办法-------- 函数名();

形参:

实参可以是对象,也可以是一个函数。

Break跳出当次循环 continue用于跳过当次循环  return 退出整个函数返回值可以是任意的数据类型

 

立即执行函数: (外围加一个括号)执行直接后面括号里写

对象的属性值也可以是函数;如果一个函数作为一个对象的属性保存,我们称这个函数是这个对象的方法,调用这个函数就说调用对象的方法(只是叫法不同…)

枚举对象中的属性for    in   。。。 。。 就能看到所有属性 就能见到所有属性值

作用域:Scope:

全局作用域无法访问函数作用域的变量,在函数作用域中操作一个变量时,他会先在自身作用域中寻找,有,就直接使用。没有则向上一级作用域中寻找直到找到全局作用域,再没有找到则会报错,在函数作用域中要访问全局作用域可以用Window属性

函数作用域也会声明提前,提前声明但是不赋值

函数作用域中不使用var声明的变量都会成为全局变量

this: 浏览器会向函数内部穿第一个隐含的参数:this

 指向的对象 根据函数的调用方式不同,this对应不同的对象   以函数形式调用 this永远是Window  以方式调用就是对应的对象

工厂方法创建对象:

function create… (){

   var obj = new Object();

   obj.name = name;

   …

return obj;

}

构造函数:就是一个普通的函数,创建方式和函数没有区别,不同的是构造函数习惯首字母大写

function Person(){

  

}

var per = new Preson()//函数直接调用,构造函数需要用new关键字

构造函数执行流程:1,立刻创建新的对象

                  2.将新建的对象作为函数中得this

                  3.逐行执行代码

                  4.将新建的对象作为返回值返回

Guess you like

Origin blog.csdn.net/weixin_57533660/article/details/121078087