JS基础

——JS的组成

ECMAScript(ES) : 负责翻译,为js的核心,解释器。

DOM (Document Object Model 文档对象模型):赋予js操作HTML的能力,document。

BOM (Browser Object Modal 浏览器对象模型):赋予js操作浏览器的能力,window,不兼容不建议使用。

——变量类型

5种基本类型:unll,undefined,boolean,number,string
       1种复杂类型:object
       5种引用类型:Array,Date,RegExp,Object,Function
       3种基本包装类型:Boolean,Number,String
       2种单体内置对象:Global,Math
       undefined:没有定义的变量,var声明没有初始化的变量

typeof 可查看变量类型,一个变量应只存一个类型的数据。

        var a = 12;// alert(typeof a);        numbera = 'dwefeyui';// alert(typeof a);        stringa = true;// alert(typeof a);        booleana = function(){alert('frgctgy');};// alert(typeof a)         functiona = document;// alert(typeof a);        objectvar b;// aletr(typeof b);        undefined// 1.真的未定义// 2.虽然定义但是没有给东西

——显式类型转换(强制类型转换)

parseInt() 可将字符串转换为数字(整数),parseFloat()可将字符串转换为数字(小数);

    var a = 'abc';// alert(parseInt(a));      NaN      var a = '3.5'; alert(parseFloat(a));       

isNaN() 判断该元素是否为NaN,NaN表示(Not a Numer),两个NaN之间不相等;

——隐式类型转换

==先转换类型,再进行比较;===不转换类型,直接比较;

        var a = 5;var b = '5';// alert(a==b);      truealert(a===b);     //false

减法也可做隐式类型转换,但加法不行。

        var a = '12';var b = '5';// alert(a+b);    //125alert(a-b);       //7

——变量作用域

局部变量:只能在定义他的函数里面使用;

全局变量:在任何地方都能用;

——闭包:子函数可以使用父函数的局部变量。

——匈牙利命名法:类型前缀(仅给变量取名时需要),首字母大写

——运算符

+加、-减、*乘、/除,%求模(余数)。(隔行变色,秒转时间)

——赋值

=、+=、-=、*=、/=、%=。(i+=1等效于i=i+1)

——逻辑

&&并且、||或者、!否;运算优先级:括号;

——程序流程控制

判断:if、switch、?:三元目()运算符

     switch (变量) {case 值1:语句1 ;break;case 值2:语句2;break;default:语句n;break;};条件?语句1:语句2;

循环:for、while;跳出:break(中断整个循环)、continue(中断本次循环);

——真和假

真(true):非0数字、非空字符串、非空对象

假(false):数字0、空字符串、null(空对象)、undefined

——JSON

和数组的区别:数组用 [ ],下标为数字,有length,故循环时采用0 - length这种方法;

JSON用 { },下标为字符串,没有length,故循环时用for in这种方法;

        var json = {a:12,b:5,c:'afy'};var arr = [12,5,'add'];//json.a++         //可像变量一样操作alert(json.a); for(var i = 0;i<arr.length;i++){
          alert('第' + i + '个东西' + json[i]);}     for(var i in json){alert('第' + i + '个东西' + json[i]);}

JS深入

——函数返回值

将函数返到函数外面,为函数的执行结果,可做运算,一个函数应该只返回一种值。

        function show(a,b){return a + b;}alert(show(3,5));

——函数传参

arguments [ ] (可变参,不定参):参数个数可变,为一个数组。

css中传两个参数为获取样式,三个参数为设置样式,一般给参数取名,增加可读性。

        function css (obj,name,value){if(arguments.length == 2){      //获取return obj.style[name];    //obj==arguments[0],以此类推}else{obj.style[name] = value;} }window.onload = function(){var oDiv = document.getElementById('div1');// alert(css(oDiv,'width'));css(oDiv,'background','green');}

getComputedStyle () 用于获取非行间样式(FireFox、Chrome、Safari)、currenStyle () 也可(IE、Opera),style用于获取行间样式。兼容性问题通常用if else处理

        <style>#div1{width: 200px;}</style><script>window.onload = function(){var oDiv = document.getElementById('div1');console.log(getComputedStyle(oDiv, false).width)}</script>

——函数封装

将需要多次用到的函数进行封装方便调用。

        function getStyle(obj,name){               //封装if(ojb,currentStyle){return obj.currentStyle[name];}else{return obj.getComputedStyle(obj, false)[name];}}window.onload = function(){var oDiv = document.getElementById('div1');alert(getStyle(oDiv,'width'));}

上述getStyle()只能用于取单一的样式,如:width,height;无法取出border等含有多个元素的样式,需写成border-color等样式。

——数组基础

有两种写法,一般采用第一个

    var a = [1,2,3];var a = new Array(1,2,3);

属性:length,可以用于获取数组长度,也可设置,一个数组中应该只存一种数据类型。

添加,删除元素:push(),从尾部添加;unshift(),从头部添加;pop(),从尾部删除;shift(),从头部删除;

删除 splice(起点,长度);插入/替换 splice(起点,长度,元素)。

 var arr = [1,2,3,4,5,6];// arr.splice(2,3);arr.splice(2,0,'a','b');alert(arr);

数组连接:concatt ( ); 分隔符:join ( ) ;

        var a = [1,2,3];var b = [4,5,6];alert(a.concat(b));var arr = [1,2,3,4,5,6];alert(arr.join('--'));

数组排序:sort ( ) ,但通常将数组当做字符串来比较,导致排序数字时乱序。

 var arr = [465,255,30,66,5,67];arr.sort(function(n1,n2){     //比较函数    return n1-n2;});alert(arr);

智能社JS学习笔记(二)相关推荐

  1. 智能社JS学习笔记(一)

    前言 转眼工作即将半年,这段时间自学了UI,html和css方面能比较熟练的掌握了,写过两套小程序的模板但只知其然不知其所以然(还是因为自己js基础知识掌握的不够啊)用bootstrap之类的框架能写 ...

  2. 智能社JS学习笔记(七)

    面向对象基础 --定义:在不了解原理的情况下,会使用功能 --对象:不了解内部的结构,知道表面的各种操作(按钮),如date,array [面向对象是一种通用思想] --面向对象编程(OOP)特点 抽 ...

  3. Vue.js 学习笔记 二,一些输出指令

    Vue的一些输出指令 {{字段}},v-text指令,v-html指令 <html> <head><meta name="viewport" cont ...

  4. JS学习笔记二——JavaScript 基础知识

    JavaScript 基础知识 一.JavaScript 变量 二.JavaScript 的输出 三.JavaScript 运算符 四.结语 一.JavaScript 变量 变量是指在程序运行过程中, ...

  5. JS学习笔记二 DOM,正则表达式简单例子介绍

    一.正则表达式 例子: var patt = /w3school/i; 例子解释: /w3school/i 是一个正则表达式. w3school 是模式(pattern)(在搜索中使用). i 是修饰 ...

  6. node.js学习笔记(二):核心

    NodeJS核心东西随着版本更新越来越多,详情看官方文档:http://nodejs.org/api/  下面简单介绍几个用的比较多的  1.全局对象 在浏览器JavaScript 中,通常windo ...

  7. Vue.js 学习笔记三,一些基础指令,v-bind,v-on

    在笔记二的基础上继续写 v-bind指令,为属性绑定数据 <!--v-bind指令可以绑定属性--><div v-html="msg2" v-bind:title ...

  8. Vue.js 学习笔记 一

    上手前的一些概念 为啥要用Vue.js Vue.js 是目前最流行的前端框架之一,专注于视图层,容易上手. 使用Vue.js,通过框架提供的指令可以减少很多DOM操作(数据的双向绑定),提高渲染效率, ...

  9. node.js 学习笔记(二)模板引擎和C/S渲染

    node.js 学习笔记(二)模板引擎和C/S渲染 文章目录 node.js 学习笔记(二)模板引擎和C/S渲染 一.初步实现Apache功能 1.1 使用模板引擎 1.2 在 node 中使用模板引 ...

最新文章

  1. SRM 563 Div1 500 SpellCards
  2. redis 登录注册
  3. python字符串操作_浅谈Python 字符串特有的操作方法
  4. 【Sass】全面的 Sass 教程及学习笔记
  5. C++变量命名规则和数据类型
  6. mqtt调试助手_物联网入门,如何使用MQTT协议,连接Tlink物联网平台
  7. 合并工具_分享一个SM to HISM合并工具
  8. LeetCode 31 下一个排列
  9. mysql 关联更新_跳出初学MySQL知识的原理整理(一)
  10. ​突破 1nm!台积电祭出“半金属”取代硅材料;搜狗发布手语 AI 合成主播;iOS 微信 8.0.6 版本更新|极客头条...
  11. php检查数组下标是否,php检查数组下标是否存在
  12. 计算机cad标题栏快捷键,CAD标题快捷键
  13. 网站怎么移动适配?这些小技巧你必须要会
  14. html调用网易云播放器无法自动播放,网页内嵌网易云插件全程(包括生成自己歌单的外链)...
  15. win10系统wifi图标不见了,如何链接无线网
  16. 函数柯里化curry 与合成函数 compose
  17. 母亲节是在每年五月份的第二个星期日,给定年份,求出当年母亲节的日期
  18. Snapper 快照管理工具
  19. 判别一个分解的无损连接性
  20. Invalid bound statement (not found): com.itheima.mapper.userMapper.SelectAll

热门文章

  1. Linux != Windows
  2. 服务器上的东西丢了怎么找回来,东西丢了不要急,教你用周易古诀找回失物!...
  3. 基于Bootstrap的后台管理系统模板。AceAdmin停更前最后的两个版本
  4. 计算机视觉中的边缘检测
  5. 物料帐配置之 重估消耗
  6. C++ 偏微分数值计算库_SymPy 符号计算基本教程
  7. Altium Designer使用技巧总结
  8. iOS开发之Documentation.build/Script-BC552B3A15.sh:
  9. [折腾向]树莓派3B+安装系统(Raspbian)以及配置环境
  10. 1993年入市一老股民愤然离场 今年已亏55万