一、什么是Javascript

  javascript,它是一种基于对象和事件驱动的并具有相对安全性的客户端脚本语言。用于web客户端开发的脚本语言,常用来给html网页添加动态功能,如响应用户的各种操作。

  javascript(以下简称js)由核心语法ECMAScript、浏览器对象模型(BOM) ,、文档对象模型(DOM)三部分组成.

二、引入JS的常用方式

  1、内部引入

    在<head>标签中引入

    在<body>标签中引入

  2、外部引入

    引入外部JS文件,就是将js代码存放在一个后缀名为.js的文件中,然后使用script标签来引用。此外,引用外部JS文件的script标签可以放在head标签内,也可以放在body标签中。一般只有引用一些插件的时候才会将JS引入在head内,大多数是写在body内最下面,因为在加载页面时css和html是先加载的,而JS文件需要最后才加载。

<body>     //在body的最末尾引入外部的JS.<script src="js/index.js" type="text/javascript"></script>
</body>

三、JS中的数据类型

    基本数据类型:String、boolean、Number、undefined、null

四、变量命名规范

    1.变量名区分大小写,允许包含字母、数字、美元符号($)和下划线,但第一个字符不允许是数字,不允许包含空格和其他标点符号,不能是中文.

    2.变量命名长度应该尽可能的短,并且语义化

    3.尽量避免使用没有意义的命名,如:a,b,c...等

    4.禁止使用JavaScript关键词、保留字全名

    5.变量名命名方法常见为驼峰命名法

 1 <!DOCTYPE html>
 2 <html>
 3     <head>
 4         <meta charset="utf-8">
 5         <title></title>
 6         <script type="text/javascript">
 7         //声明变量以及命名规则
 8             var a;
 9             var b;
10             var c,d;
11             /*alert(a);*/
12         //声明变量的同时并且赋值
13             var test='this is a test';
14             var test1=12;
15             var test2=1.2;
16             var test3=true;
17             var test4=false;
18             /*alert(test);*/
19         //声明多个变量赋相同的初始值
20             var a=b=c=d=e=1;
21             //alert(a);
22         //变量重名会产生覆盖
23             a=33;
24             //alert(a);
25         //变量名称严格区分大小写
26          var username='king';
27          var USERNAME='QUEEN';
28       //alert(username);
29 29//alert(USERNAME);
30         //变量名称最好含义明确,以字母或者下划线开始或者$,跟上数字字母下划线,不能用特殊符号
31         var age=12;
32         var test5='hello';
33      //var 12a='bb';
34      //alert(12a);
35         var _test='hello';
36      //alert(_test);
37         //驼峰标记法
38         var firstName='king';//小驼峰
39         var FirstName='queen';//大驼峰
40         var first_name='maizi';//下划线法
41         </script>
42     </head>
43     <body>
44
45     </body>
46 </html>

五、JS中的类型转换

    强制类型转换:

    Boolean(value):把给定的值转换成Boolean型。如下:

    以下值会被转换为false:false、”"、0、NaN、null、undefined,其余任何值都会被转换为true。

    String(value):把给定的值转换成字符串。如下:

    (1)如果有toString()方法,则调用该方法(不传递radix参数)并返回结果(2)如果是null,返回”null”(3)如果是undefined,返回”undefined”

    

    Number(value):把给定的值转换成数字(可以是整数或浮点数)。如下:

    (1)如果是布尔值,true和false分别被转换为1和0(2)如果是数字值,返回本身。(3)如果是null,返回0.(4)如果是undefined,返回NaN。(5)如果是字符串,遵循以下规则:1、如果字符串中只包含数字,则将其转换为十进制(忽略前导0)2、如果字符串中包含有效的浮点格式,将其转换为浮点数值(忽略前导0)3、如果是空字符串,将其转换为04、如果字符串中包含非以上格式,则将其转换为NaN(6)如果是对象,则调用对象的valueOf()方法,然后依据前面的规则转换返回的值。如果转换的结果是NaN,则调用对象的toString()方法,再次依照前面的规则转换返回的字符串值

    转换函数:

    ParseInt(string,radix):将字符串转换为整数类型的数值。如下:

    (1)忽略字符串前面的空格,直至找到第一个非空字符(2)如果第一个字符不是数字符号或者负号,返回NaN(3)如果第一个字符是数字,则继续解析直至字符串解析完毕或者遇到一个非数字符号为止(4)如果上步解析的结果以0开头,则将其当作八进制来解析;如果以x开头,则将其当作十六进制来解析(5)如果指定radix参数,则以radix为基数进行解析

    parseFloat(string):将字符串转换为浮点数类型的数值。如下:

它的规则与parseInt基本相同,但也有点区别:字符串中第一个小数点符号是有效的,另外parseFloat会忽略所有前导0,如果字符串包含一个可解析为整数的数,则返回整数值而不是浮点数值

六、JS运算符

    1、算数运算符,算术运算符用于执行变量与/或值之间的算术运算。

          给定 y=5,下面的表格解释了比较运算符:

运算符 描述 例子 结果
+ x=y+2 x=7
- x=y-2 x=3
* x=y*2 x=10
/ x=y/2 x=2.5
% 求余数 (取膜,保留整数) x=y%2 x=1
++ 累加(自加) x=++y x=6
-- 递减(自减) x=--y x=4

    

    2、赋值运算符,赋值运算符用于给 JavaScript 变量赋值。

           给定 x=10,y=5,下面的表格解释了比较运算符:

运算符 例子 等价于 结果
= x=y   x=5
+= x+=y x=x+y x=15
-= x-=y x=x-y x=5
*= x*=y x=x*y x=50
/= x/=y x=x/y x=2
%= x%=y x=x%y x=0

    

    3、比较运算符,比较运算符在逻辑语句中使用,以测定变量或值是否相等。

            给定 x=5,下面的表格解释了比较运算符:

运算符 描述 例子
== 等于 x==8 为 false
=== 全等(值和类型) x===5 为 true;x==="5" 为 false
!= 不等于 x!=8 为 true
> 大于 x>8 为 false
< 小于 x<8 为 true
>= 大于或等于 x>=8 为 false
<= 小于或等于 x<=8 为 true

    

    4、逻辑运算符,逻辑运算符用于测定变量或值之间的逻辑。

            给定 x=6 以及 y=4,下表解释了逻辑运算符:

运算符 描述 例子
&& and (x < 10 && y > 1) 为 true
|| or (x==5 || y==5) 为 false
! not !(x==y) 为 true

    

    5、三目运算符

          格式:表达式?“值1”:“值2”,左边为三目运算符的表达式,?后的第一个值为true,:后的值为false.

          例子:var  num  = 10;

             num>100?"num的值不大于100":"num的值大于100";

七、JS中的流程控制

    1、条件语句,通常在写代码时,您总是需要为不同的决定来执行不同的动作。您可以在代码中使用条件语句来完成该任务。在 JavaScript 中,我们可使用以下条件语句:

      (1)、if 语句 :只有当指定条件为 true 时,该语句才会执行代码。

        语法:

 if (条件){只有当条件为 true 时执行的代码}

        例如:

var a = 5;     //if else 判断大小
var b = 3;
if(a>b){       //只有当指定条件为 true 时,使用该语句来执行代码alert("a的值大");
}

      

        (2)、if  else语句 :在条件为 true 时执行代码,在条件为 false 时执行其他代码。

        语法:

if (条件){当条件为 true 时执行的代码}
else{当条件不为 true 时执行的代码}

        例如:

var a = 3;     //if else 判断大小
var b = 5;
if(a>b){       //只有当指定条件为 true 时,使用该语句来执行代码alert("a的值大");
}else{        //当条件不为true 时执行其他代码alert("b的值大")
}

      (3)、 if....else if...else 语句来选择多个代码块之一来执行。

        语法:

if (条件 1){当条件 1 为 true 时执行的代码}
else if (条件 2){当条件 2 为 true 时执行的代码}
else{当条件 1 和 条件 2 都不为 true 时执行的代码}

        例如:

var score = 60;   //判断成绩
if(score<=100 && score>=90){alert("成绩优");
}else if(score<90 && score>=80){alert("成绩良");    
}else if(score<80 && score>=60){alert("成绩及格");
}else if(score<60){alert("成绩差");
}

        

    2、switch语句,基于不同的条件执行不同的动作

      语法:表达式n通常为一个变量,n的值与case的值作比较,如果case匹配成功,则执行该case中的代码段,每个case中请使用break来阻止代码向下一个case运行。

 如果每个case中都没有break,它将执行所有的case。default代表如果n的值与case都不匹配,则执行default的代码段。

switch(n)
{
case 1:执行代码块 1break;
case 2:执行代码块 2break;
default:n 与 case 1 和 case 2 不同时执行的代码
}

      例子:

switch (1){   //表达式的值如果等于case的值,并且类型值相同,就运行相应case代码case 1:alert("1");break;   //如果不写break,它将执行所有的case,直到遇到某一个case中写了breakcase 2:alert("2");break;default:  alert("如果上面的case与n的值都不匹配,则执行我哦~");break;}

    3、循环流程控制(for,while,do while)

      当我们需要重复执行某一个动作或运行相同的代码的时候,我们就可以使用循环

      (1)、for循环

        语法:

for (语句 1; 语句 2; 语句 3){被执行的代码块}

        语句 1 在循环开始前执行,通常我们会在这里声明一个变量

        语句 2 定义运行循环的条件,通常我们会在这里写一个表达式

        语句3只有在本次循环完成后才执行,通常我们会在这里写一个变量的自增或自减,

        例如:

//for循环小例子   求1-100的和
var sum = 0;
for(var i=1;i<=100;i++){sum = sum + i;
}
document.write(sum);

      

      (2)、while循环

        语法:

while (条件){需要执行的代码}

        例如:

       //while循环1-10var i=1;while(i<=10){document.write(i+'<br/>');i++;}    

      (3)、do while循环

        语法:do/while 循环是 while 循环的变体。不管while中的表达式成不成立,do中的代码段都会执行一次。

do{需要执行的代码}
while (条件);

        例如:

        //do while  var num = 12;do{  //至少被执行一次,即使为false也会执行,因为输出代码块在条件之前。num++;document.write("num的值为:"+num+"<br />");}while(num<1);

    

      (4)、break和continue

        语法:

continue;   //跳出本次循环,且continue上面的代码会执行完,continue下面的代码不会执行。
break;      //结束整个循环

        例如:

       /*break*/var i=1;while(i<=10){if(i==3){document.write(i+'<br/>');break;   //结束整个循环}document.write(i+'<br/>'); //输出的值为:1,2,3i++;}

       /*continue循环*/i=1;while(i<=10){if(i==3){i++;   //4continue;  //结束本次循环,且continue上面的代码会执行完,continue下面的代码不会执行}document.write(i+'<br/>');  //输出1,2,4,5,6,7,8,9,10i++; }    

八、函数

    函数是什么?

     定义:函数是为了完成某个功能的代码段,意义是方便维护和重复利用。

     函数命名方式:不能用特殊字符,尽量语义化,驼峰式命名,严格区分大小写,函数名重名会产生覆盖,函数最好用事件驱动。

     函数的创建方法有三种:

      //JS函数创建方法一:function fun(){alert("Hello JavaScript");}fun();  //定义好的函数如果不被调用,函数是不会执行的//JS函数创建方法二:将函数存储在变量中,var fun =  function(){alert("Hello HTML");}fun();  //定义好的函数如果不被调用,函数是不会执行的//JS函数创建方法三:构造函数,函数可以自调!var fun = new Function(alert("Hello Java"));

     函数的调用方法:

     //声明一个函数,并调用        function fun(){alert("Hello JavaScript");}fun();  

     <!--HTML中通过事件调用函数-->     <p>第一题:请问你会HTML吗</p><button id="a" οnclick="fun()" value="会">会</button>

     

     函数的参数传递:

     所谓参数传递,就是将实参的值传递给形参。通过调试可以确定形参在函数调用之前是不存在的,当函数被调用的那一刻,实参被创建,并且把实参的内容传递给形参。

        //声明一个函数increase(),括号中的num就是这个函数的形参。function increase(num){num++;return num;}//调用方法,并传入一个实参10,根据函数要完成的功能的不同,可传入的参数也不同,alert(increase(10));

      参数传递的注意事项:

     (1)、形参的命名,不能使用特殊符号,开头只能以$_字母开头,同名产生覆盖,不能有中文。(2)、虽然JS属于弱类型语言,不强制要求形参和实参必须个数相等,但是实际项目中,形参有多少个,实参我们就传入多少个。

 

      参数传递包含两种方式:值传递和引用传递。

        值传递:形参是实参值的一个副本,对形参的改变不会影响实参         引用传递(object,array等):形参实际上是对实参引用变量的复制,导致这实参、形参都指向同一个对象实体。形参改变会同时改变实参的值。 

       //值传递var a = 10;function increase(a){a++;return a;}       increase(a); //弹出形参11       alert(a);    //弹出实参10       //a的值并没有显示预期中的11,还是10。因为形参a和实参a是两个不同的变量,形参a的变化和实参a没有任何关系。

        /*引用传递*///声明一个person对象var person = {name:'Tom',age:22}function myfunc(person){person.name='jeck';alert(person.age); //22}myfunc(person);alert(person.name);  //输出jeck,而不是Tom

      回调函数:传统函数以参数形式输入数据,并且使用返回语句返回值。理论上,在函数结尾处有一个return返回语句,结构上就是:一个输入点和一个输出点。这比较容易理解,函数本质上就是输入和输出之间实现过程的映射。但是,当函数的实现过程非常漫长,你是选择等待函数完成处理,还是使用回调函数进行异步处理呢?这种情况下,使用回调函数变得至关重要,例如:AJAX请求。若是使用回调函数进行处理,代码就可以继续进行其他任务,而无需空等。实际开发中,经常在javascript中使用异步调用,甚至在这里强烈推荐使用!

       //回调函数function fun(){var num = 1;return  function(){num = num *10;document.write(num);return num;};}var fun = fun();fun();

九、测试代码URI

函数功能介绍:
escape()   :     采用ISO Latin字符集对指定的字符串进行编码。所有的空格符、标点符号、特殊字符以及其他非ASCII字符都会转化成%xx格式的字符编码(xx代表此字符在字符集表里编码的16进制数字)。比如,空格符的对应编码是%20。不会对ASCII字符和数字进行编码。不会被此方法编码的字符:@ * / +,反向编码函数:unescape()
encodeURI():    把URI字符串采用UTF-8编码格式转化成escape格式的字符串。不会被此方法编码的字符:! @ # $ & ( ) = : / ; ? + ',反向编码函数:decodeURI()
encodeURIComponent():把URI字符串采用URF-8编码格式转化成escape格式的字符串。与encodeURI相比,这个函数会将更多的字符进行编码,比如"/"等字符。所以如果字符串里面包含了URI的几个部分的话,不能用这个来进行编码。否则“/”字符被编码后将URL显示错误。不会被此方法编码的字符:! * ( ),反向编码函数:decodeURIComponent()
具体用法:
escape()函数用于js对字符串进行编码。不常用
encodeURI()用于整个url跳转,比如:
转化前: location.href = "http://localhost:8080/pro?a=1&b=呼呼&c=aaa";
转化后: location.href = "http://localhost:8080/pro?a=1&b=%E5%BC%A0%E4%B8%89&c=aaa"
本例中只是将中文转成%...,传过去再解码就可以拿到中文
encodeURIComponent()用于参数的传递,参数包含特殊字符可能会造成间断。比如:
var paramUrl = "http://localhost:8080/aa?a=1&b=2&c=3";
var url = "http://localhost:8080/pp?a=1&b="+ paramUrl ;
应该使用encodeURIComponent()进行转码,
结果:http://localhost:8080/pp?a=1&b=http%3A%2F%2Flocalhost%3A8080%2Faa%3Fa%3D1%26b%3D2%23%26c%3D3

转载于:https://www.cnblogs.com/wykid/p/8231156.html

[Javascript]js中所学知识点回顾总结相关推荐

  1. js中的一些知识点,小白专用,打狗棒法之《棒挑癞犬》

    jQuery里面的$("this")和$(this)有什么区别 直接上解释吧: 1.$("this")是使用标签选择器,查找名为this的标签 2.$(this ...

  2. html+css+js中的小知识点汇聚(无序 停更)

    HTML: css: 1.1css样式 1.id比class的优先级更高. 2.css规定的定位机制:标准文档流,浮动和绝对定位. 3.css样式分为:行内样式,内部样式和外部样式.(优先级遵循就近原 ...

  3. javascript --- js中的事件

    事件实现松耦合: // JS和HTML之间的交互是通过事件实现的. // 事件,就是文档或浏览器窗口中发生一些特定的交互瞬间. // 可以使用侦听器来预定事件,以便事件发生时执行相应的代码. // 这 ...

  4. [置顶]       Javascript js中页面的重新加载

    用JavaScript刷新上级页面和当前页面 <script type="text/javascript"> //刷新上级页面 //window.parent.main ...

  5. javascript --- js中的作用域 变量提升

    1 求以下函数的输出 1.1 考察点: 变量提升.this.作用域 // 考察点 作用域.this.变量提升 var a = 10 function test() {a = 100console.lo ...

  6. javascript --- js中prototype、__proto__、[[Propto]]、constructor的关系

    首先看下面一行代码: function Person(name){this.name = name; } var person1 = new Person; console.log(person1._ ...

  7. Python中必学知识点:类方法、实例方法和静态方法

    在面向对象编程中,类和实例是两个非常重要的概念,类是一个泛指的模型化的概念,如人员. 通过类可以创建实例,实例指某一个具体的对象,如张三. class Person(object): # 定义类 pa ...

  8. Javascript开发技巧(JS中的变量、运算符、分支结构、循环结构)

    一.Js简介和入门 继续跟进JS开发的相关教程. <!-- [使用JS的三种方式] 1.HTML标签中内嵌JS(不提倡使用): 示例:<button οnclick="javas ...

  9. JavaScript基础实战(2)js中的强制类型转换、运算符、关系运算符、逻辑运算符、条件运算符

    文章目录 1.强制类型转换Number 1.1 代码 1.2 测试结果 2.进制表示 2.1 代码 2.2 测试结果 3.强制类型转换为Boolea 3.1 代码 3.2 测试结果 4.运算符 4.1 ...

  10. JS中通过call方法实现继承

    JS中通过call方法实现继承 原文:JS中通过call方法实现继承 讲解都写在注释里面了,有不对的地方请拍砖,谢谢! <html xmlns="http://www.w3.org/1 ...

最新文章

  1. 阿里OceanBase GitHub点赞送礼引争议,CTO道歉,贾扬清、李沐讨论开源刷Star
  2. 2021年寒假将至,教育部致信中小学生家长的一封信:人生如长跑,起步忌冲刺,薄发需厚积
  3. java在文本区输出方法_Java文件的几种读取、输出方式
  4. 如何使用div优雅的布局
  5. linux创建空镜像,Docker创建base镜像
  6. 国内外优秀音视频博客
  7. 《Java Web项目开发实战案例》最新源码
  8. linux程序设计——个人总结
  9. 推荐FPGA入门书籍
  10. 自媒体人常用工具,你还不知道的快速保存无水印视频图片方法
  11. matlab绘制直方图的方法
  12. 2018腾讯社交广告算法大赛总结/0.772229/Rank11-复习代码
  13. QQ邮箱无法接受Python SMTP/POP邮件解决方案
  14. #217-[哈希]好人卡
  15. 软考中级---系统集成项目管理
  16. TCP的三次握手,四次挥手
  17. [转]探索 CouchDB
  18. Window.clearTimeout() 方法取消由 setTimeout() 方法设置的 timeout
  19. 编程初学者的一些学习干货笔记
  20. 清洁机器人--音频方案之基于国民MCU IO控制的唯创WT588 语音播放方案

热门文章

  1. mysql 存储过程 获取错误信息 继续执行
  2. sysrq 和 sysrq-trigger
  3. 企业级的Java快速开发平台,首选iMatrix平台。
  4. 用Intel线程构建块进行安全、可伸缩性的并行编程
  5. 系统故障模拟及修复实验
  6. Linux设备驱动模型-Driver
  7. 谈谈Linux的栈回溯与妙用
  8. PowerPC 汇编
  9. Snmp4j编程简介之三:Snmp
  10. SNMP报文抓取与分析(二)