为什么 Web 前端开发不抛弃 HTML 和 CSS,用纯 JavaScript 开发
4个回答
2016-01-25 · 知道合伙人软件行家
关注
展开全部
简单的讲:
程序本质是数据结构和算法,HTML 和 CSS只能表达简单的树形结构,适合简单的内容型网站,不适合复杂的Web程序。以它们为核心的开发会:把简单变的更简单,但把复杂变的更复杂。石头搭得了石屋,不一定盖得了大厦。
啰嗦的讲:
HTML和CSS的语言表达能力,用JavaScript的一个子集JSON(其实就是JavaScript对象和数组)就可以代替,但缺少基本运算符、语句、函数、对象等,为啥不干脆用JavaScript代替,还能保持统一性和灵活性。我不是说的具体功能,功能是浏览器底层实现的,JavaScript照样可以作为接口,就像Node.js一样。
因为是游戏开发出身,所以知道对于像游戏这样复杂的东西,不可能用 HTML 和 CSS 等标记式语言开发。那么,随着 Web 前端的复杂度不断高升,HTML 和 CSS 这种适合文档网站的语言还有存在的必要吗?会不会阻碍复杂程序的开发。
作
为类比,以前我用过 Flex,其 MXML 语言的灵活度比 HTML 更高,也会用到 CSS,但是除非是很简单的页面结构,大部分情况下,用
ActionScript 组织页面会更方便灵活。而且 JavaScript 开发,也更容易模块化。HTML 和 CSS 都太简单,甚至可以用
JSON 替代,其功能用 JS 封装。
就像很多其它语言平台一样,比如 Java,用纯 Java
代码开发界面。如果真的很需要结构化动态数据,可以用 JSON 或 XML。至于内容、表现、逻辑的分离,并不需要从语言层面分离,纯 JS
一样可以分离,而且更有可控性。HTML 和 CSS 逻辑太弱了,这也是为什么会有 LESS 等 CSS 预编译器和各种模板引擎,如果用纯
JS,这些都可以不需要了。
至于不支持 JS 的浏览器,基本上也不可能用来上网了吧。
补充下:
最近有一些库尤其是追求性能和WebApp开发的库,已经把HTML当作最终输出目标,用JS重构整个显示模型。比如React的虚拟DOM和JSX(满足模板爱好者的可选项),极度优化了DOM更新。http://famo.us的3D物理型显示引擎,压平了整个DOM树,用CSS3和硬件加速,极大提高了运行效率。当然也为模板爱好者提供了Angular整合的可选项。
这是我用famous加一些自己写的函数实现链式调用,用coffeescript(JavaScript改进)写的界面代码。我觉得高手来写的话,可读性应该比这个更好。关键是灵活性很高。
程序本质是数据结构和算法,HTML 和 CSS只能表达简单的树形结构,适合简单的内容型网站,不适合复杂的Web程序。以它们为核心的开发会:把简单变的更简单,但把复杂变的更复杂。石头搭得了石屋,不一定盖得了大厦。
啰嗦的讲:
HTML和CSS的语言表达能力,用JavaScript的一个子集JSON(其实就是JavaScript对象和数组)就可以代替,但缺少基本运算符、语句、函数、对象等,为啥不干脆用JavaScript代替,还能保持统一性和灵活性。我不是说的具体功能,功能是浏览器底层实现的,JavaScript照样可以作为接口,就像Node.js一样。
因为是游戏开发出身,所以知道对于像游戏这样复杂的东西,不可能用 HTML 和 CSS 等标记式语言开发。那么,随着 Web 前端的复杂度不断高升,HTML 和 CSS 这种适合文档网站的语言还有存在的必要吗?会不会阻碍复杂程序的开发。
作
为类比,以前我用过 Flex,其 MXML 语言的灵活度比 HTML 更高,也会用到 CSS,但是除非是很简单的页面结构,大部分情况下,用
ActionScript 组织页面会更方便灵活。而且 JavaScript 开发,也更容易模块化。HTML 和 CSS 都太简单,甚至可以用
JSON 替代,其功能用 JS 封装。
就像很多其它语言平台一样,比如 Java,用纯 Java
代码开发界面。如果真的很需要结构化动态数据,可以用 JSON 或 XML。至于内容、表现、逻辑的分离,并不需要从语言层面分离,纯 JS
一样可以分离,而且更有可控性。HTML 和 CSS 逻辑太弱了,这也是为什么会有 LESS 等 CSS 预编译器和各种模板引擎,如果用纯
JS,这些都可以不需要了。
至于不支持 JS 的浏览器,基本上也不可能用来上网了吧。
补充下:
最近有一些库尤其是追求性能和WebApp开发的库,已经把HTML当作最终输出目标,用JS重构整个显示模型。比如React的虚拟DOM和JSX(满足模板爱好者的可选项),极度优化了DOM更新。http://famo.us的3D物理型显示引擎,压平了整个DOM树,用CSS3和硬件加速,极大提高了运行效率。当然也为模板爱好者提供了Angular整合的可选项。
这是我用famous加一些自己写的函数实现链式调用,用coffeescript(JavaScript改进)写的界面代码。我觉得高手来写的话,可读性应该比这个更好。关键是灵活性很高。
2018-07-06 · 做真实的自己 用良心做教育
千锋教育
千锋教育专注HTML5大前端、JavaEE、Python、人工智能、UI&UE、云计算、全栈软件测试、大数据、物联网+嵌入式、Unity游戏开发、网络安全、互联网营销、Go语言等培训教育。
向TA提问
关注
展开全部
不可以
web的主要组成是html+css。js只是辅助实现一些效果所以由此可以看出来,html+css才是主流,从另一方面来说。网站建好之后要进行优化推广,各大搜索引擎是不认识js是什东西的,他们很排斥js。相比起来,他们很喜欢html。所以,在建设网站的时候要尽量少用或者是不用js。
专业将这三者的关系:
1. HTML是网页内容的载体。内容就是网页制作者放在页面上想要让用户浏览的信息,可以包含文字、图片、视频等。
2. CSS样式是表现(外观控制)。就像网页的外衣。比如,标题字体、颜色变化,或为标题加入背景图片、边框等。所有这些用来改变内容外观的东西称之为表现。
3. JavaScript是用来实现网页上的特效效果。如:鼠标滑过弹出下拉菜单。或鼠标滑过表格的背景颜色改变。还有焦点新闻(新闻图片)的轮换。可以这么理解,有动画的,有交互的一般都是用JavaScript来实现的。
web的主要组成是html+css。js只是辅助实现一些效果所以由此可以看出来,html+css才是主流,从另一方面来说。网站建好之后要进行优化推广,各大搜索引擎是不认识js是什东西的,他们很排斥js。相比起来,他们很喜欢html。所以,在建设网站的时候要尽量少用或者是不用js。
专业将这三者的关系:
1. HTML是网页内容的载体。内容就是网页制作者放在页面上想要让用户浏览的信息,可以包含文字、图片、视频等。
2. CSS样式是表现(外观控制)。就像网页的外衣。比如,标题字体、颜色变化,或为标题加入背景图片、边框等。所有这些用来改变内容外观的东西称之为表现。
3. JavaScript是用来实现网页上的特效效果。如:鼠标滑过弹出下拉菜单。或鼠标滑过表格的背景颜色改变。还有焦点新闻(新闻图片)的轮换。可以这么理解,有动画的,有交互的一般都是用JavaScript来实现的。
本回答被网友采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
不可以
web的主要组成是html+css。js只是辅助实现一些效果所以由此可以看出来,html+css才是主流,从另一方面来说。网站建好之后要进行优化推广,各大搜索引擎是不认识js是什东西的,他们很排斥js。相比起来,他们很喜欢html。所以,在建设网站的时候要尽量少用或者是不用js。
专业将这三者的关系:
1. HTML是网页内容的载体。内容就是网页制作者放在页面上想要让用户浏览的信息,可以包含文字、图片、视频等。
2. CSS样式是表现(外观控制)。就像网页的外衣。比如,标题字体、颜色变化,或为标题加入背景图片、边框等。所有这些用来改变内容外观的东西称之为表现。
3. JavaScript是用来实现网页上的特效效果。如:鼠标滑过弹出下拉菜单。或鼠标滑过表格的背景颜色改变。还有焦点新闻(新闻图片)的轮换。可以这么理解,有动画的,有交互的一般都是用JavaScript来实现的。
web的主要组成是html+css。js只是辅助实现一些效果所以由此可以看出来,html+css才是主流,从另一方面来说。网站建好之后要进行优化推广,各大搜索引擎是不认识js是什东西的,他们很排斥js。相比起来,他们很喜欢html。所以,在建设网站的时候要尽量少用或者是不用js。
专业将这三者的关系:
1. HTML是网页内容的载体。内容就是网页制作者放在页面上想要让用户浏览的信息,可以包含文字、图片、视频等。
2. CSS样式是表现(外观控制)。就像网页的外衣。比如,标题字体、颜色变化,或为标题加入背景图片、边框等。所有这些用来改变内容外观的东西称之为表现。
3. JavaScript是用来实现网页上的特效效果。如:鼠标滑过弹出下拉菜单。或鼠标滑过表格的背景颜色改变。还有焦点新闻(新闻图片)的轮换。可以这么理解,有动画的,有交互的一般都是用JavaScript来实现的。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
JAVASCRIPT是操作HTML和CSS的,网页显示就是靠HTML+CSS,如果把显示的东西都舍弃了。那JAVASCRIPT能干什么呢。。
比如说,js的DOM操作等。js设置表单的提交,必须要有表单,js才能操作,没有表单,js提交什么。。。
比如说,js的DOM操作等。js设置表单的提交,必须要有表单,js才能操作,没有表单,js提交什么。。。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询