首页
学习
活动
专区
圈层
工具
发布
    • 综合排序
    • 最热优先
    • 最新优先
    时间不限
  • 来自专栏lonelydawn的前端猿区

    宏观前端

    从后端走向前端 Web 发展初期 在 Web 发展初期,前后端是如何协作的呢? 纵观 Web 发展史,从模板引擎到 ajax、从后端路由到前端路由,这一路走来,技术重心已逐渐转移到前端。 从前端走向全端 Node.js 2009年2月,一位名叫 Ryan Dahl 的开发者在博客上宣布准备基于 Google V8 引擎创建一个轻量级的 Web 服务,并为之提供一套组件库。 小程序 这几年来,随着各种 小程序 的问世,Web 前端技术早已超脱了浏览器和 Hybrid 应用的范围。前端工程师很容易基于已有技术栈快速上手和开发小程序类微应用。 electron 在移动端进行布局的同时,前端工作者们还把目光放到了桌面客户端上。

    95010编辑于 2022-09-20
  • 来自专栏JavaScript高级程序设计

    第五十一期:前端,大前端前端

    比如说思考一下这个问题:前端到底是个什么神仙工作,说起来也从事前端开发好几年了,但是真正在这里面收获的有什么东西么? 好像有,又好像没有。 再后来,移动互联网兴起之后,又出现了大前端的概念。 而前端是我早上出门的时候忽然想起来的一个词。刚才搜索了一下,其实网上也有这个概念,这里只谈一下我对它的理解。 前端的概念不在仅仅局限于我们日常开发中的网站,管理后台,小程序,游戏等等,其他的软件以及硬件设备,都可以称之为前端。 从而沉淀出一些对项目的日后的发展有借鉴意义的技术,这个也可以理解为前端的范畴。 前端只是前端,大前端可以理解为全端,而前端则是对前端以及大前端的深化。

    1.4K30编辑于 2022-07-15
  • 来自专栏函数式编程语言及工具

    函编程(2)-初次体验函编程

        函编程和数学方程式解题相似;用某种方式找出问题的答案。函编程通用的方式包括了模式匹配(pattern matching)以及递归思维(Recursive thinking)。 | case 2 => "Error number 2." 4 | case 3 => "Error number 3." 5 | case _ => "Unknown error! 看看引用情况: 1 reportError(2) 2 res3: String = Error number 2. 3 4 scala> reportError(-1) 5 res4: String * (2 * factorial(1))) 5 4 * (3 * (2 * 1)) = 24 可以得出预料的答案。 虽然从表达形式上失去了函编程的优雅,但除了可以解决堆栈溢出问题外,运行效率也比递归方式优化。但这并不意味着完全违背了“不可改变性”(Immutability)。因为变量是锁定在函数内部的。

    97190发布于 2018-01-04
  • 来自专栏编程学习之路

    型的初步认识(2

    参考文章:Java 中的型(两万字超全详解)_java 型-CSDN博客 型绝对要注意的一点 在java中,我们无法直接实例化型的类型参数对象. 1.当我们在创建一个 ArrayList< Integer > 型集合的时候,ArrayList 可以看作是演唱会场馆,而< T >就是场馆的验票系统,Integer 是验票系统设置的门票类型; 2. arrayInteger.get(0);// 这条代码底层如下: //(1)get() 方法的返回值返回的是 Object 类型 Object object = arrayInteger.get(0); //(2) ,其内的所有型信息都会被擦除,并且类型参数 T 会被统一替换为其原始类型(默认是 Object 类,若有 extends 或者 super 则另外分析); 2.在型信息被擦除后,若还需要使用到对象相关的型信息 这是因为Java的型是在编译时期进行类型擦除的,即在运行时型信息被擦除,只保留原始类型,我们不清楚其原本的具体类型。因此,编译器不允许直接创建型对象。

    51610编辑于 2024-04-21
  • 来自专栏项目文章

    Java集合学习2

    型 Generic 型类 写一个型类 语法:类名 T就代表数据类型的占位符 运行的时候要表示一种引用类型,不可以是实际类型,同时可以写多个占位符,用逗号隔开即可。 使用型创建变量 还可以添加方法作为方法的参数 还可以使用型作为方法的返回值 需要注意 的是不同型对象不能相互 复制。 写一个型接口 是不能使用型创建 静态常量的,即不能new这个型。 由于接口是不能实例化的,所以需要写一个实现类。 在实现接口的时候必须在使用的 时候必须写清楚什么类。 联动型类和型接口。 型方法 如果是T那么就是就是返回T 类型的,void就不返回 就可以了。 型好处 型集合 参数化的类型、类型安全的集合,强制集合元素的类型必须一致。

    19310编辑于 2024-06-07
  • 来自专栏用代码征服天下

    Java基础系列2:Java

    2型初体验:一个被举了无数次的栗子 List arrayList = new ArrayList(); arrayList.add("aaaa"); arrayList.add(100); for * 2)只有声明了<T>的方法才是型方法,型类中的使用了型的成员方法并不是型方法。 * 3)<T>表明该方法将使用型类型T,此时才可以在方法中使用型类型T。 2,"ds"); // 1 // 2 // ds } static class B <T>{ T t; public void go () <Integer>型类型的,只能存储整数,最后,我们通过list1对象和list2对象的getClass()方法获取他们的类的信息,最后发现结果为true。 2、类型擦除后保留的原始类型 原始类型 就是擦除去了型信息,最后在字节码中的类型变量的真正类型,无论何时定义一个型,相应的原始类型都会被自动提供,类型变量擦除,并使用其限定类型(无限定的变量用Object

    88550发布于 2019-11-10
  • 来自专栏赵康的日常专栏

    前端】Web前端学习笔记【2

    相关博客: Web前端学习笔记【1】 ---- 1. this在 JavaScript 中主要有以下五种使用场景 ---- 在全局函数调用中,this 绑定全局对象,浏览器环境全局对象为 window = { test: 'obj2test', getAge2: function () { console.log(this.test) } } return obj2; } }; obj.getAge().getAge2() // 'obj2test' // ============== var obj = { birth :@&=+$#")); 输出: http%3A%2F%2Fwww.w3school.com.cn http%3A%2F%2Fwww.w3school.com.cn%2Fp%201%2F %2C%2F globalStorage 使用于Firefox2+的火狐浏览器,类似于IE的userData。 缺点:IE不支持。

    69920编辑于 2023-10-17
  • 来自专栏农民工前端

    前端面经(2

    使用path来匹配路由,然后通过query来传递参数,这种情况下 query传递的参数会显示在url路由的两种模式 hash与history 对于Vue 这类渐进式前端开发框架,为了构建SPA(单页面应用 ),需要引入前端路由系统,这也就是Vue-router存在的意义。 前端路由的核心,就在于改变视图的同时不会向后端发出请求。 添加验证码2. 日常工作中用的最对的跨域方案是CORS和Nginx反向代理前端工程化webpack配置,webpack4.0有哪些优化点module.exports={entry: {},output: {},plugins

    1.8K60编辑于 2023-02-17
  • 来自专栏前端开发面试

    前端面试前端性能优化篇2

    不论是什么样的前端面试,总会问到的一个问题:前端性能优化。相信如果这个问题没有答好,在面试中会很被动。于是,趁着这个天天宅的时期,好好的整理了一番。 、CSS代码可以内嵌在HTML中,比如:rem动态等5、避免使用iFrame6、使用骨架屏二、CSS优化加载优化1、避免使用css的@import2、避免使用通配符3、避免使用! 1、选择器嵌套尽量不要超过三层2、id选择器尽量不要嵌套3、使用继承体积优化1、提取公共CSS三、JS优化运行速度1、如果没有兼容问题,尽量使用原生方法2、根据兼容浏览器的最低版本,考虑是否使用polyfill3 (Webpack拆包)减少加载体积1、压缩图片2、压缩HTML、CSS、JS代码3、开启网络压缩,如:GZIP参考 前端进阶面试题详细解答减少加载次数1、制作精灵图2、将小图片转换为base64字符串3 、使用浏览器缓存4、使用前端缓存,如: LocalStorage、Cookie、SessionStorage等5、减少重定向请求,比如:nginx反向代理的重定向6、避免使用服务端字体五、React性能优化

    89930编辑于 2023-01-04
  • 来自专栏万丈高楼平地起

    前端面试(2)javascript

    boy1.arr.push(2); console.log(boy1.arr,boy2.arr);// [1,2] [1] // 缺点1:方法不能复用 console.log(boy1.say == = boy2.say) // false (说明,boy1和boy2 的say方法是独立,不是共享的) // 缺点2:不能继承父类原型上的方法 Parent.prototype.walk = function 实现步骤: Step1: 创建 callback 方法 Step2: 插入 script 标签 Step3: 后台接受到请求,解析前端传过去的 callback 方法,返回该方法的调用,并且数据作为参数传入该方法 Step4: 前端执行服务端返回的方法调用。 原因就在于 f1 是 f2 的父函数,而 f2 被赋给了一个全局变量,这导致 f2 始终在内存中,而 f2 的存在依赖于 f1,因此 f1 也始终在内存中,不会在调用结束后,被垃圾回收机制(garbage

    1.7K20编辑于 2022-03-08
  • 来自专栏达达前端

    前端技术前沿2

    child: Child } data = { list: [{id: 1, title: 'title1'}, {id: 2, title: 'title2'}] } } </script> data = { a: 1 } //计算属性aPlus,在脚本中可通过this.aPlus来引用,在模板中可通过 { components = {}; data = {}; methods = {}; events = { 'some-event': (p1, p2,

    97240发布于 2019-07-03
  • 来自专栏全栈程序员必看

    C#型入门型类、型集合、型方法、型约束、型委托

    (这是当今较常见的定义) 2.在程序编码中一些包含参数的类。其参数可以代表类或对象等等。 2.创建型类,可在编译时创建类型安全的集合 3.避免装箱和拆箱操作降低性能,在大型集合中装箱和拆箱的影响非常大. list1.Add(3); list1.Add(105); System.Collections.ArrayList list2 = new System.Collections.ArrayList(); list2.Add("科比"); list2.Add("詹姆斯"); ArrayList 下面是一些基础的型类型 1.型类 class MyGenericClass<T> { //...... } 2.型接口

    4.4K30编辑于 2022-09-14
  • 来自专栏韩曙亮的移动开发专栏

    【Kotlin】型 ① ( 型类 | 型参数 | 型函数 | 多型参数 | 型类型约束 )

    Student<Int> = Student(18) student2.log() } 执行结果 : item : Tom item : 18 二、型参数 ---- 通常情况下 , 型参数 Student<Int> = Student(18) student2.log() } 执行结果 : item : Tom item : 18 三、型函数 ---- 函数 的 参数 或 返回值 Student<Int> = Student(18) println(student2.logT(student2.item)) } 执行结果 : item : Tom Tom item : Student<Int> = Student(18) println(student2.logT {true}) } 执行结果 : student 实例对象中 , 型 T 的实际类型是 String 类型 , 在 logT 中 型 R 的类型是 Double 类型 ; student2 实例对象中 , 型 T 的实际类型是 Int 类型 , 在 logT 中 型 R 的类型是 Boolean

    5.9K10编辑于 2023-03-30
  • 来自专栏编程

    前端基础-CSS-2

    这个文件就是我们一会要写的样式文件,为了展示不带样式的页面,我先把这行注释掉了,那这段代码用chrome打开截图如下: 那接下来我们完成样式文件的编写,首先我们完成的任务如下: 1、设置背景颜色浅蓝色 2、 给h1字体加一个边框,设置h2字体颜色 3、设置div中p段落背景颜色 4、设置表单边框,指定宽度和长度 5、设置超链接颜色和一些文字装饰 基本就这些吧,我们直接上代码: /*背景色*/ body{ background-color : #a8e6ff; } /*h1的边框*/ h1{ border: 1px solid black; } /*h2颜色*/ h2{ color: purple; } /*段落背景色,注意是div下的p : 5px solid gray; width: 400px; height: 200px; } /*超链接红色*/ a{ color: red; } /*表单边框*/ input{ border: 2px

    1.1K60发布于 2018-01-26
  • 来自专栏韩曙亮的移动开发专栏

    【Java 型】型用法 ( 型类用法 | 型方法用法 | 型通配符 ? | 型安全检查 )

    > 四、型安全检查 五、完整代码示例 1、型类 / 方法 2、main 函数 一、型类用法 ---- 型类用法 : 使用时先声明型 , 如果不声明型 , 则表示该类的型是 Object getData2(T arg){ T data = arg; return data; } 指定型的方法 : 指定 型方法 的型类 , 型方法 的型声明 <String, Integer>getData2("Mouse"); 不指定型的方法 : 型方法 中 也可以不声明型类型 , 传入的参数是 型 T 类型 , 如果给传入参数设置 String 如果给传入参数设置 String , 隐含将型 T 设置为 String 类型 String data2 = student.getData2("Mouse"); 三、型通配符 <? = (String) student1.getData(); 四、型安全检查 ---- 注意下面 2型的用法 , 推荐使用第一种方法 ; // 型的安全检查

    12.8K30编辑于 2023-03-29
  • 来自专栏韩曙亮的移动开发专栏

    【Java 型】型简介 ( 型类 | 型方法 | 静态方法的型 | 型类与型方法完整示例 )

    的性能 ; 二、型类 ---- 型类 : 在 类名后面 使用 <T> 声明型 , 则在该类中 , 可以使用该型类型 T 类型 ; 特别注意 , 该类中的 如下 2 个方法 不是 型方法 ---- 型方法 : 在方法的 返回值前 , 使用 <T> 声明型的方法 , 是型方法 ; 将某个类型作为参数传入 ; 型个数 : 该方法是型方法 , 且指定了 2型 , 型的个数可以有很多个 , 是将某个类型作为参数传入 * 方法指定型 , 写法如下 * * 该方法是型方法 * 方法指定了 2型 * return */ public <T, A> T getData2(T arg){ T data = arg; return data; } , 是将某个类型作为参数传入 * 方法指定型 , 写法如下 ; * * 该方法是型方法 * 方法指定了 2型 *

    24.4K30编辑于 2023-03-29
  • 来自专栏九彩拼盘的叨叨叨

    前端学习 第2周 第2

    link和:visited伪类的书写顺序 作业 写满足以下条件的选择器 类名不为not-normal-input的文本框(<input type="text">)元素的获得焦点状态 在父元素中倒数第2

    25240发布于 2018-08-27
  • 来自专栏java一日一条

    Java 容器 & 型(2):ArrayList 、LinkedList和Vector比较

    确切的讲,列表通常允许满足 e1.equals(e2) 的元素对 e1 和 e2,并且如果列表本身允许 null 元素的话,通常它们允许多个 null 元素。 ; System.out.print("指定角标2删除:\n\t"+a1+"\n"); System.out.print("指定角标2查询:\n\t : [List01, List02, List04] 指定角标2查询: List04 用迭代器查询全部元素: List01,List02,List04 在上面我们可以根据角标来增加(add 2、记住并发修改异常 java.util.ConcurrentModificationException ,优先考虑ArrayList,除非你在使用多线程所需。 2、于新增和删除操作add和remove,LinedList比较占优势,ArrayList要移动数据。

    76510发布于 2018-09-19
  • 来自专栏冷环渊的全栈工程师历程

    Java进阶:【型】认识型,型方法,型类,型接口和通配符

    ,默认为Object类型 2.型父类传入类型实参,子类既可以是型类,也可以不是 3.型父类传入类型实参,则子类必须是型类,且子类的类型形参列表必须包含父类的类型形参列表 型类的定义和实例化 = new test01<>(); gt2.sex ="男"; gt2.a("abc"); gt2.b(new String[]{"a","b","A"} ,那么子类在实例化的时候需要指定 static class SubGeneric2<e> extends test01<e>{ } 型类可以定义多个参数类型 t){ } static class Demo{ public static void main(String[] args) { test02<String> t2 = new test02(); t2.a("1"); t2.b("abc"); } } 型参数存在继承的情况 前面两个引用类型,都可以赋值,为什么list不行?

    5.5K10发布于 2021-11-29
  • 来自专栏全栈程序员必看

    型(型擦除)【java基础—-型】

    1.3 型定义(型类、型方法(型方法返回值是型的,型方法在普通类和型类里)): 1.4特点: 对于型特点(1)举个例子 : 没有使用型时的异常抛出 对于型特点(2)访问时不需要类型转换 (拆箱),举例子List list = new ArrayList(); 对于型特点(3)不同型之间不能相互赋值,举例 对于型特点(3)型不存在多态,举例 2.型类、型接口、型方法 不能存储基本类型int,double… 5.型擦除 5.1 型擦除概念: 5.2 由于型擦除出现的错误举例: ---- ---- 1.什么是型 1.1型概念: Java型是J2 SE1.5 定义一个型方法(不在型类里):publilc <T> void testMethod() { } 或定义一个返回值类型是型的方法(不在型类里): public <T> T testMethod2 (所以人家的真心不允许被辜负,就没多态了) 2.型类、型接口、型方法 2.1型类 语法:类名<T,……..> 举例: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16

    5K51编辑于 2022-11-02
领券