es6 字符串

  对页面渲染的几种方式:字符串拼接  文档碎片  dom操作  模板  

  es6 又提供了一种新的对页面渲染的方式:字符串模板(高级版的字符串拼接)

    模板字符串标识符是 反引号 ( `` ) 英文状态下 tab 上面的键,字符串直接写,遇到变量写在 ${} 内;

    var name="hello world";

    案例:var sd=` 这种写法真好 ${name} `;  // 这种写法还会把空格保留下来 ,但是当模板用的话,注意: js 语句 在 `` 中并不友好

  es6 对象

  es6 允许将变量和函数作为对象的属性和方法

  案例:

    var name="zhangsan";

    function fn(){

      console.log(123)

    }

    var obj={

      name:name,    // 可省略为 name   第一个name 属性,第二个name 变量

      fn:fn,      // 可省略为 fn    第一个 fn 属性,第二个是 fn 函数

      [name]:name // 第一个[name] 代表了 name 变量,第二个name 代表了 name 变量

    }

    console.log(obj.name);  // zhangsan   

    obj.fn();    // 123

  以上案例的注意点:

  1. 当变量名和属性名相同的时候才能省略

  2. 将一个变量值写成对象的属性,一定要加 [] , 如果不加 [] 属性,就是 name ,加上 [name] 就是 name 变量的属性值

  对象的两个关键字  set  get

  get 代表取值  set 代表存值

  案例:

    var obj={

      haha:"zhangsan",

      get name(){    // get name 是一个取值的方法 名字必须是 name ,不能随便取名  

        return name  // get 关键字 当 obj.name 是时候就会触发这个函数,但是的是什么,name 的属性就是什么

      },

      set name(val){   // set name 是一个存值的方法 名字必须是 name,不能随便取名

        name=val;   // val  当给 name 赋值的时候,就会触发这个方法

        return name;

      }

    }

    console.log(obj.name);   // 会触发 get name

    obj.name="lisi";  // 会触发 set name

    console.log(obj.name);

  

  less

  变量:

    使用 @ 符 定义变量,用 : 赋值

      案例:@w:100px;

    定义类:案例

        @.po:red;  // 前者变量  后者类名

        @{.po}{  // 这里的 po 就代表了 red 这个类

        }

  混入:将一个选择器混到另一个选择器中

    案例:

      .po{

        position:absolute;

      }

      .p{

        .po;    // 在每个 less 语法后面都要加 ; 号,  引入方式同名即可

        left:10px;

      }

      另一种写法

      .po(){

        position:absolute;

      }

      div{

        .po()

      }

      一个是带() 一个是不带() 这两种写法的区别是什么?

        带() 代表编译后的 css样式,不会在定义的时候显示出来,只会在使用的时候显示出来

        不带() 代表编译后的 css样式,会在定义的时候显示出来,只会在使用的时候显示出来

  嵌套:

    主要是:css 后代,子代,伪类

    less 实现 后代写法

      div{

        p{

      

        }

      }

    less 实现 子代写法

      div{

        >p{

        }

      }

    less 实现伪类写法

      div{

        &:hover{    // & 关键字,是一个连接符,代表当前父类的选择器

        }

      }

  函数的默认值;

    .div($w:100px,$h:100px,$bg:red){  // 默认值,形参默认值写法 ,可以在调用的时候不传值,如果没有默认值的话,在调用的时候,必须输入值,否则就会报错

      width:$w;

      height:$h;

      background:$bg;

    }

  导入:@import "路径"  引入其他的 less 文件

  循环:是迭代循环,函数内部调用函数本身 还需要使用的函数 when()

  案例:

    .loop(@n) when(@n>0){  //使用递归的方法进行循环,这种写法叫迭代  when 作为条件判断

      width:(100px*@n);

      .loop((@n)-1);    // 如果我们对变量使用()的话,他会认为变量是 n-1 就会报错,因为没有这个变量,所以我们使用 () 括起来;

    }

    div{

      .loop(5)

    }

  继承:extend 让一个选择器去继承另一个选择器,就是让我们实现 并级选择器

  为什么使用并级选择器;当我们里面的样式相同的时候,如果我们进行 复制,粘贴操作的话,无疑是增加了我们的代码量;使用并级的话可以减少我们的代码量(但也减不了多少行)

    写法:

      html 结构

      <div class="cla">

        <div class="dd"></div>

      </div>

      .div{    // 这个 div  我们实现一个上下左右居中的效果

        position:absolute;

        top:0;

        left:0;

        right:0;

        bottom:0;

        margin:auto;

        width:200px;

        height:200px;

        background:pink;

      }

    extend 的两种引入方式

    第一种:

      .cla{

        width:400px;

        height:400px;

        position:relative;

        background:green;

        .dd:extend(.div){}  // 这个代码块里,就继承了 .div 定义的代码

      }

    第二种:

      .cla{

        width:400px;

        height:400px;

        position:relative;

        background:green;

        .dd{

          &:extend(.div all);    // 这种写法是和第一种写法一样的效果  all 代表继承了跟 .dd 相关的所有选择器

        }

      }

es6 字符串 对象 拓展 及 less 的语法的更多相关文章

  1. ES6字符串的拓展

    字符串的遍历接口 for...of循环遍历. for (let codePoint of 'foo') { console.log(codePoint) } // "f" // & ...

  2. ES6之对象的语法糖

    本文介绍下ES6中对象的一些拓展功能. 这三个语法糖在实际的项目开发中经常会见到.

  3. ES6 随记(3.1)-- 字符串的拓展

    上一章请见: 1. ES6 随记(1)-- let 与 const 2. ES6 随记(2)-- 解构赋值 4. 拓展 a. 字符串的拓展 有些字符需要 4 个字节储存,比如 \uD83D\uDE80 ...

  4. ES6 对象拓展方法

    一,ES6 对象拓展方法 ES6为对象提供了一些拓展方法,下面列举几个比较常见的对象拓展方法.

  5. ES6中对象的扩展

    ES6不仅为字符串.数值和数组带来了扩展,也为对象带来了很多新特性.这一节,我们来一起学习一下对象的扩展. 对象的传统表示法 我们回顾一下,对象的传统表示法: let person = { " ...

  6. ES6 数组方法拓展

    ES6 数组方法拓展 1.Array.from() Array.from方法用于将两类对象转为真正的数组:类似数组的对象(array-like object)和可遍历(iterable)的对象(包括E ...

  7. 【ES6】更易于继承的类语法

    和其它面向对象编程语言一样,ES6 正式定义了 class 类以及 extend 继承语法糖,并且支持静态.派生.抽象.迭代.单例等,而且根据 ES6 的新特性衍生出很多有趣的用法. 一.类的基本定义 ...

  8. js-string字符串对象

    js-string字符串对象 一.String 对象描述 字符串是 JavaScript 的一种基本的数据类型. String 对象的 length 属性声明了该字符串中的字符数. String 类定 ...

  9. JavaScript原生对象拓展

    JavaScript原生对象拓展 在据说每个大牛.小牛都应该有自己的库——框架篇中我扬言要做个小牛,没想到一天没更新,小伙儿伴们就戏谑的问我,油哥是不是要太监了?其实事情是这个样子的,这不是太监的节奏 ...

随机推荐

  1. loj 2392「JOISC 2017 Day 1」烟花棒

    loj 答案显然满足二分性,先二分一个速度\(v\) 然后显然所有没有点火的都会往中间点火的人方向走,并且如果两个人相遇不会马上点火,要等到火快熄灭的时候才点火,所以这两个人之后应该在一起行动.另外有 ...

  2. 部署Dashboard,监控应用

    部署web UI(dashboard)用于监控node资源 参见文档:https://blog.csdn.net/networken/article/details/85607593 官网:https ...

  3. Dubbo从入门到实战视频教程

    Dubbo是阿里巴巴公司开源的一个高性能优秀的服务框架,使得应用可通过高性能的 RPC 实现服务的输出和输入功能,可以和 Spring框架无缝集成.这里整理了一套关于dubbo的视频教程分享给大家,包 ...

  4. ccs之经典布局(三)(等分,等高布局)

    接上篇ccs之经典布局(二)(两栏,三栏布局) 七.等分布局 等分布局是指一行被分为若干列,每一列的宽度是相同的值.两列之间有若干的距离. 1.float+padding+background-cli ...

  5. windows10 mysql主从复制配置

    注意:mysql主从复制,主从版本要一致! 生手永远在学习的路上,为了学习mysql主从复制,实现读写分离,于是在本地安装多个mysql实例来进行验证. 也因此有了下面的笔记,一来自我总结一下经验,二 ...

  6. SQL SERVER 2012安装配置说明(多图详解)

    1. 优先安装软件 1. net framework3.5. 2. 在安装SQL SERVER 2012前需要3.5的支持.在WIN 2012系统可以在系统管理的添加角色和功能中安装,如下将[.NET ...

  7. 504错误解决办法 让你的浏览器强制在后端服务器执行而不用通过前端CDN服务器

      因为后端执行时间过长,前端不等待,导致提示504错误的解决办法 504 错误是因为你的CDN服务器设置的延时有限, 超时导致的504 是前端不等待中止,是前端不行,后端应该正常 502 错误是后端 ...

  8. springboot jpa junit测试遇到的问题

    jpa在插入数据的时候,插入的对象变量user中不能包含变量,需要时确切的值,否则会出现sql解析报错 解析报错如下图

  9. oracle表的列合并(group by)和行合并(union all)

    group by select a.dn,t.dn dnt,a.BEGIN_TIME,a.R032_001,t.R032_001,a.R032_002,a.R032_003,a.R032_004, a ...

  10. P1801 黑匣子[对顶堆]

    没错我就是专门找对顶堆练习题的.现在感觉对顶堆使用面有点狭窄.这道题由于我询问是随时间单调增的,而且数据比较友好,应该是插入几次就询问一下的.而中位数那题也是经常询问的.如果查询的东西不单调,或者查询 ...