JavaScript 函数总结

JavaScript为web的编程脚本语言。

JavaScript由三部分组成:emc(语法) dom(文档对象模型) bom(浏览器对象模型)。

【函数的定义】
  1、为了完成、执行代码段。
  2、方便维护,有利于优化。
  3、可以重复利用。
【引入方法】
  1、在body标签底部,是因为计算机是从上往下执行,先执行html和css文件,最后才执行js文件。

<body>

  <script type="text/javascript" src="js/test.js" charset="utf-8"></script>
</body>

  2、在我们需要引入外部,别人的js文件,比如框架,那么就要把它写在head标签中。

<head>
  <script type="text/javascript" src="js/test.js" charset="utf-8"></script>
</head>

【声明变量以及命名规则】
  1、声明变量的同时并且赋值。   

var test='this is a test';  

  2、声明多个变量赋相同的初始值。   

var a=b=c=d=e=1;

  3、变量重名会产生覆盖。 

a=33;  a=1;     

  4、变量名称严格区分大小写。

var username='king';  var USERNAME='QUEEN';  

  5、变量名称要含义明确,以字母或者下划线、$符号开始,不能用特殊符号。

var a='bb';   var _test='hello';    

  6、驼峰标记法。 

var firstName='king';//小驼峰    var FirstName='queen';//大驼峰    var first_name='maizi';//下划线法

  7、要语义化。

【js中五种基本类型】
  数值类型(number)(包括整型、浮点型、number)、
  布尔类型(boolean)、
  字符串类型(string)、
  null、
  undefined(未定义的)。
【一种特殊类型】
  对象(object)

【五种强制转换类型】
  Number(数值)、String(字符串)、Boolean(布尔)、parseInt(整型)、parseFloat(浮点型)
【 隐式转换】
  1、其它类型转换成布尔类型

       (【返回假】0、空字符串、NaN、undefined)
  2、其它类型转换成数值型

       (数值型+undefined=NaN   数值型+null=数值 ( boolean:true+2=3 false+2=2))
  3、其它类型转换成字符串型

      (【拼接字符串】 + )

【运算符与表达式】
  算术运算符:+、-、*、/、%(模)
      字符串+数值= 弹出(字符串(string))
    (注意:字符串型不支持自增自减运算符)
      字符串++ 【NaN】
  逻辑运算符:
    与(&&)
        (只要第一个表达式是false,第二个就短路了,整个表达式就是false)
       两个表达式中有一个为false,整个结果为false
    或(||)
        (只要第一个表达式是true,第二个就短路了,整个表达式就是true)
       两个表达式中有一个为true,整个结果为true
    非(!)

      (取反)
  三元运算符:

    (语法:条件 ? 结果1 : 结果2;)

       这里把条件写在问号(?)的前面后面跟着用冒号(:)分隔的结果1和结果2。满足条件时结果1否则结果2。
  字符串连接符: +
  赋值运算符: =(赋值)     ==(判断)    ===(全等)     +=   -=    *=     /=     %=      !=
  比较运算符: >     <     >=    <=
  逗号表达式:

 void运算符(void不管是什么,都显示未定义)
 void弹出类型就是undefined
 z=void(n=1,m=2,p=3);
 alert(z); //undefined

【流程控制】

条件语句  if    else if(exp){
  exp为true的代码段;
}else{
  exp为false的代码段;
}

switch...case

(严格比较)

switch(exp){
case 值1:
      执行的代码段;
break;
case 值2:
      执行的代码段;
break;
...
default:
       执行的代码段;
break;
}
循环语句  for (i++和++i一样) for(exp1;exp2;exp3){
循环体;
}
exp1:无条件的执行第一个表达式
exp2:是判断是否能执行循环体的条件
exp3:做增量的操作

while

while(false)的时候不会输出任何东西

while(exp)  { 
  循环体;
}
 do while do{
  循环体;
}while(exp);
特殊循环控制  break、return(停止、终止循环)  
 continue(结束本次循环)  

【函数的命名规范】
  1、严格区分大小写。
  2、函数名称要注意驼峰式写法,下划线连接。
  3、不能包括特殊字符。
  4、要语义化。
  5、函数名不能覆盖。
  6、函数可以有参数,也可以没有,形参和传参要一样。
  7、函数通过return返回值,如果没有,默认返回undefined。

【变量作用域】
  在函数中:
  函数体内(局部变量)
  函数体外(全局变量)
【全局变量(公用的)与局部变量】
  如果全局变量和局部变量同时声明时(二次赋值),先读取局部变量,局部变量执行力更强。
  如果在函数里面重新声明函数外面的全局变量,可以读到它,但是取不到它的值。
【parseInt】
  parseInt() 函数可解析一个字符串,并返回一个整数。
  parseInt(string, radix)
  string:
    必需。要被解析的字符串。
  radix:
    可选。表示要解析的数字的基数。该值介于 2 ~ 36 之间。
  如果省略该参数或其值为 0,则数字将以 10 为基础来解析。
  如果它以 “0x” 或 “0X” 开头,将以 16 为基数。
  如果该参数小于 2 或者大于 36,则 parseInt() 将返回 NaN。
  返回值:返回解析后的数字。
  说明:
  当参数 radix 的值为 0,或没有设置该参数时,parseInt() 会根据 string 来判断数字的基数。
  举例:
  如果 string 以 "0x" 开头,parseInt() 会把 string 的其余部分解析为十六进制的整数。
  如果 string 以 0 开头,那么 ECMAScript v3 允许 parseInt() 的一个实现把其后的字符解析为八进制或十六进制的数字。
  如果 string 以 1 ~ 9 的数字开头,parseInt() 将把它解析为十进制的整数。
  提示:
  只有字符串中的第一个数字会被返回。
  开头和结尾的空格是允许的。
  如果字符串的第一个字符不能被转换为数字,那么 parseFloat() 会返回 NaN。
【数组】
  [获取数组最大值与最小值]

 var a=[1,2,3,5];
 alert(Math.max.apply(null, a));//最大值
 alert(Math.min.apply(null, a));//最小值

【Infinity】

    Infinity 【正无穷大】
  -Infinity 【负无穷大】

  注意:任何数乘以infinity都等于infinity,任何数除以infinity都等于0

未完待续。。。

JavaScript函数总结—越努力,越幸运!的更多相关文章

  1. 越努力越幸运--动态数组vector

    最近回忆山哥写的stl,觉得很好用,也写了一份. 感谢群里的大佬帮忙review,还是很多的问题的. code:https://github.com/HellsingAshen/vector_c.gi ...

  2. 越努力越幸运--3-日常bug修复

    提供一个so给PYTHON调用,后端发现业务处理流程不是按照方法传入的参数来跑. 查看c的代码,看了客户端没看出什么问题,查看服务端为什么会出现这样的情况,有些字段明显不是入参带过来的,跟踪服务端解析 ...

  3. 越努力越幸运--2-LD_PRELOAD, fork ,僵尸进程

    开始新的工作了,做了爸爸之后感觉一直都是浑浑噩噩,希望老婆和宝宝一直健康开心~ 最近遇到的问题很多啊,哈哈 1. 装环境时候,需要的glibc 版本不对,我把本地的软链接改了个别名(惯性思维),然后一 ...

  4. JavaScript定时器越走越快的问题

    目录 JavaScript定时器越走越快的问题 (setinterval)多次初始化 清除(clearInterval)的失效 解决方法 JavaScript定时器越走越快的问题 之前在项目中写了定时 ...

  5. CEO 系列之一:如何当好创业公司 CEO?(不要用战术的勤奋掩盖战略的懒惰,在创业过程中,最核心问题,就是能把创业情怀变成具体问题。这个问题越具体越好)

    1. 创业公司要先定一个目标,要善于把目标简化, 分解成一个, 一个更具体,更简单的问题2. 针对简单的问题进行聚焦, 做深做强3. 在做的过程中, 把断地推出自己的产品到市场上去试错, 要用事实来证 ...

  6. F# 越用越喜欢

    F# 越用越喜欢 最近由于需要,把遗忘了几年的F#又捡了起来.说捡了起来,倒不如说是从头学习,原来学的早已经忘了!所谓学过,只不过看过一本<F# 语言程序设计> (郑宇军 凌海风 编著 - ...

  7. 为什么Android手机总是越用越慢?

    根据第三方的调研数据显示,有77%的Android手机用户承认自己曾遭遇过手机变慢的影响,百度搜索“Android+卡慢”,也有超过460万条结果.在业内,Android手机一直有着“越用越慢”的口碑 ...

  8. 为啥Android手机总会越用越慢?

    转自:http://www.androidchina.net/818.html 根据第三方的调研数据显示,有77%的Android手机用户承认自己曾遭遇过手机变慢的影响,百度搜索“Android+卡慢 ...

  9. 特征真的越多越好吗?从特征工程角度看“garbage in,garbage out”

    1. 从朴素贝叶斯在医疗诊断中的迷思说起 这个模型最早被应用于医疗诊断,其中,类变量的不同值用于表示患者可能患的不同疾病.证据变量用于表示不同症状.化验结果等.在简单的疾病诊断上,朴素贝叶斯模型确实发 ...

随机推荐

  1. Net基础篇_学习笔记_第十二天_面向对象继承(命名空间 、值类型和引用类型)

    命名空间可以认为类是属于命名空间的. 解决类的重名问题,可以看做类的“文件夹”如果在当前项目中没有这个类的命名空间,需要我们手动的导入这个类所在的命名空间.1).用鼠标去点2).alt+shift+F ...

  2. JAVA内存模型与JVM内存结构

    问题:什么事java内存模型? 首先呢不要答堆.栈.方法区.这是JVM的内存结构.下面阐述了JMM和JVM的区别和自己对JMM的见解 1.Java内存模型(JMM):即多线程相关的.定义了一个线程对另 ...

  3. jquery多级树形下拉菜单

    效果图: 使用方法 (1)引入 jQuery 包,下载地址 (2)引入 zTree 包,下载地址 (3)引入 tree-select.js (4)$("#id").treeSele ...

  4. Spring Boot 面试题总结

    1.什么是spring boot 答案:springboot是用来简化spring应用的初始搭建和开发过程,使用特定的配置文件来配置,例如application.properties,简化来maven ...

  5. web性能优化实践

    一.SQL查询优化 1.循环中有多次查询sql,改为在循环外一次查询后再处理 2.循环多次插入,改为组装好数据后批量插入 3.梳理业务逻辑能一次查完的,绝不分多次查 4.索引用起来 5.分页查询 二. ...

  6. Android Studio 3.1.3填坑之路

      昨天编写程序的时候,遇到了一个非常令人头疼的BUG,如下图:   标题栏和里面的内容都消失了,这对于一个非常在乎排版的软件来说简直就是晴空霹雳,搞了好长时间,终于在今天找到解决方法,原来是升级搞的 ...

  7. 基于Docker搭建大数据集群(五)Mlsql部署

    主要内容 mlsql部署 前提 zookeeper正常使用 spark正常使用 hadoop正常使用 安装包 微云下载 | tar包目录下 mlsql-cluster-2.4_2.11-1.4.0.t ...

  8. GetThreadTimes获取其它线程cpu时间

    http://www.cnblogs.com/eaglet/archive/2009/03/11/1408809.html 鄙视下上面的垃圾博文,纯粹忽悠人 参考文章: http://blog.kal ...

  9. WEB开发中常见的漏洞

    一.SQL注入漏洞 SQL注入攻击(SQL Injection),简称注入攻击.SQL注入,被广泛用于非法获取网站控制权,是发生在应用程序的数据库层上的安全漏洞.在设计程序,忽略了对输入字符串中夹带的 ...

  10. Mysql触发器实例分析

    所谓触发器,就是在定义在表对象上.当触发器所在的表出现指定的事件时,会触发对应表的delete update insert的操作.说的有点绕口,其实就是到监视某种情况,然后去触发某种操作. 触发器是如 ...