Showing posts with label front end interview. Show all posts
Showing posts with label front end interview. Show all posts

Quick Cheatsheet on some Javascript Basics

1) Global objects can be accessed via this operator in javascript.

2) Global properties that return a simple value and have no methods are:
Infinity, NaN, undefined, null

3) How to create a variable:
var myNameVariable = ‘name1’;
//Re-assigning the value:
myNameVariable = ‘name2’;

4) Primitive data types that are supported in Javascript are:
Boolean, Null, Undefined, Number, String, Symbol, Object
  • Boolean type can take true or false
  • Null can take exactly one value: null
  • Integers are 16-bit unsigned integer values
  • Object: It's like an object oriented programming concept of object.
5) Comments: Following are 2 types of creating comments.
  • /* */
  • //
6) Mathematical operators:
  • add/concatenation: +
  • subtract: -
  • multiple: * 
  • divide: /
  • assignment operator: =
  • Identity Operator: ===
  • Negation: !
  • Not equal: !==
7) How to define a function
function testFunc() {
alert(“Test”);
}

jQuery Guide

This guide has the information you need to know about jQuery to get started. 

Basics

  1. jQuery is a library of javascript functions that you can use in your code. If you know the basics of javascript then you will be able to easily learn jQuery. 
  2. You can very easily apply different operations and formatting on different tags in your html code. For ex: If you want to hide a specify elements(lets say <p>) upon click a link. You can easily do this via jQuery. 
  3. To use jQuery you have to find the tag(selector) on which you have to perform the action. Basic syntax is:
    1. $(selector).action(
      1. To access jQuery library $ is used. We can use jQuery in place of $. At some places we do use jQuery instead of a $, we will explore it in more details at later point in the tutorial. 
      2. A (selector) or tag in the html document. 
      3. action() specifies the operation to be performed on the selected tag.
  4. There are certain ways to find the html element. These methods are similar to finding elements in CSS.
    1. $(“h1”) - This method will select the element h1.
    2. $(“#format”) - This method will select the element whose id=“format” in the html page.
    3. $(“.formatter”) - This method will select the element whose class = “formatter” in the html element. 
  5. To use jQuery library you can either download it and include it your source code. Or else you can refer it from its hosted location. One such location is: http://ajax.googleapis.com/ajax/libs/jquery/1.11.1/jquery.min.js
  6. Hence you should include this library reference in the script tag like this:
    1. <script src="http://ajax.googleapis.com/ajax/libs/jquery/1.11.1/jquery.min.js"> 
  7. And it should be included in your head tag like this:
    1. <head>
    2. <script src="http://ajax.googleapis.com/ajax/libs/jquery/1.11.1/jquery.min.js">
    3. </head>
  8. Quick Notes:
    • jQuery uses $ sign as a shortcut for jQuery
    • jQuery is Client side scripting
  9. What if other JavaScript frameworks also use the $ sign as a shortcut?
  10. If two different frameworks are using the same shortcut, one of them might stop working.
    The jQuery team have already thought about this, and implemented the noConflict() method.
    The noConflict() method releases the hold on the $ shortcut identifier, so that other scripts can use it.
    $.noConflict();
    jQuery(document).ready(function(){
      jQuery("button").click(function(){
        jQuery("p").text("jQuery is still working!");
      });
    });


jQuery Events

jQuery Mouse Events
Some of the jQuery methods are common and can be executed on desired tags. All the methods attaches the event handlers on the html element on which they are attached. Once that action is performed the event handler is called and it performs the set of steps on the corresponding html element. 
  1. .click() - Action is performed when html tag/selector is clicked.
  2. .dblclick() - Action is performed when html tag/selector is double clicked
  3. .focus() - Action is performed when html/tag selector is focused on.
  4. .change() - Action is performed when html tag/selector value changes. It is limited to tags: <input>, <textarea>, <select>
  5. .mouseenter() - Action is performed when mouse enters the html tag/selector. 
  6. .mouseleave() - Performs opposite action as compared to mouse enter.
  7. .hover() - Perform action when mouse is hovered over the corresponding html tag/selector.
  8. .focusout() - Event is executed when the focus moves away from corresponding html tag/selector.
  9. .mousedown() - Event is executed when mouse button is clicked on the html tag/selector.
  10. .mousemove() - Event is executed when mouse move in the html tag/selector.
  11. .mouseout() - Event is executed when mouse moves out of the html element. 
  12. .mouseover() - Event is executed when mouse moves over the html element. 
  13. .mouseup() - Event is executed when mouse is over the html element and is released. 
  14. .toggle() - This event is deprecated in the jQuery 1.8. 

jQuery Keyboard events:
  1. .focusout() - Event is invoked when any element or an element below it loses focus. It is different from blur since it supports losing focus from the child elements.
  2. .keydown() - Event is invoked when any key is pressed. Any element in focus will receive the actions when this event is executed. 
  3. .keypress() - Similar to keydown but following keys will not register key press event: shift, Del, Esc
  4. .keyup() - Event is invoked when a key is released.Because of event bubbling all the key presses will be propagated to the document element. For specific elements, we can use .keypress().

Document Rendering Events:
    • .load() - Action is performed when html tag/selector is loaded.
    • .ready() - Action is performed when the DOM is ready or the document is ready. It doesn’t work well with .load since that operation will start performing its operation as soon as the element is available. However, .ready is not going to execute its action till entire DOM is available. When this function is called then we should use $.noConflict() to avoid the namespace conflicts and we have to use jQuery in place of $. 
    • .unload() - Action to be performed when the user intends to go away from the page. The action of going away include:
      • - click on forward and back button.
      • - Refresh a page
      • - clicking on exit browser button. 

Keyboard Events:
    • 1) .focusout() - Event is invoked when any element or an element below it loses focus. It is different from blur since it supports losing focus from the child elements.
    • 2) .keydown() - Event is invoked when any key is pressed. Any element in focus will receive the actions when this event is executed. 
    • 3) .keypress() - Similar to keydown but following keys will not register key press event: shift, Del, Esc
    • 4) .keyup() - Event is invoked when a key is released.Because of event bubbling all the key presses will be propagated to the document element. For specific elements, we can use .keypress().

Commonly Used jQuery Event Methods
    • $(document).ready(): The $(document).ready() method allows us to execute a function when the document is fully loaded. This event is already explained in the jQuery Syntax chapter.
    • click()
      • The click() method attaches an event handler function to an HTML element.
      • The function is executed when the user clicks on the HTML element.
    • dblclick()
      • The dblclick() method attaches an event handler function to an HTML element.
      • The function is executed when the user double-clicks on the HTML element:
    • mouseenter()
      • The mouseenter() method attaches an event handler function to an HTML element.
      • The function is executed when the mouse pointer enters the HTML element:
    • mouseleave()
      • The mouseleave() method attaches an event handler function to an HTML element.
      • The function is executed when the mouse pointer leaves the HTML element:
    • mousedown()
      • The mousedown() method attaches an event handler function to an HTML element.
      • The function is executed, when the left mouse button is pressed down, while the mouse is over the HTML element:
    • mouseup()
      • The mouseup() method attaches an event handler function to an HTML element.
      • The function is executed, when the left mouse button is released, while the mouse is over the HTML element:
    • hover()
      • The hover() method takes two functions and is a combination of the mouseenter() and mouseleave() methods.
      • The first function is executed when the mouse enters the HTML element, and the second function is executed when the mouse leaves the HTML element:
    • focus()
      • The focus() method attaches an event handler function to an HTML form field.
      • The function is executed when the form field gets focus:
    • blur()
      • The blur() method attaches an event handler function to an HTML form field.
      • The function is executed when the form field loses focus:


jQuery DOM Manipulation: One very important part of jQuery is the possibility to manipulate the DOM. jQuery comes with a bunch of DOM related methods that make it easy to access and manipulate elements and attributes
    • text() - Sets or returns the text content of selected elements
    • html() - Sets or returns the content of selected elements (including HTML markup)
    • val() - Sets or returns the value of form fields
    • The jQuery attr() method is used to get attribute values.


Call back functions

$("#btn1").click(function(){
    $("#test1").text(function(i,origText){
        return "Old text: " + origText + " New text: Hello world!
        (index: " + i + ")"; 
     });
 });
We can have similar callback functions for the other methods: text, html, val
  • remove() - Removes the selected element (and its child elements)
  • empty() - Removes the child elements from the selected element

Call Back Function example:
$("#div1").remove();
$("p").remove(".italic");


jQuery Methods


  • jQuery addClass() Method
The following example shows how to add class attributes to different elements. Of course you can select multiple elements, when adding classes:
Example
$("button").click(function(){
    $("h1,h2,p").addClass("blue");
    $("div").addClass("important");
});

  • jQuery removeClass() Method
The following example shows how to remove a specific class attribute from different elements:
Example
$("button").click(function(){
    $("h1,h2,p").removeClass("blue");
});

  • jQuery toggleClass() Method
The following example will show how to use the jQuery toggleClass() method. This method toggles between adding/removing classes from the selected elements:
Example
$("button").click(function(){
    $("h1,h2,p").toggleClass("blue");
});

  • Set a CSS Property
$("p").css("background-color","yellow");


  • Set Multiple CSS Properties
$("p").css({"background-color":"yellow","font-size":"200%"});


  • jQuery Dimension Methods
jQuery has several important methods for working with dimensions:
    • width()
    • height()
    • innerWidth()
    • innerHeight()
    • outerWidth()
    • outerHeight()

  • Traversing Up the DOM Tree
Three useful jQuery methods for traversing up the DOM tree are:
    • parent(): The parent() method returns the direct parent element of the selected element. And it goes up only a single level.
    • parents(): Find all the parents.
    • parentsUntil(): Find the parents till a specific html or class or id specified
$(document).ready(function(){
     $("span").parentsUntil("div");
});


  • Traversing Down the DOM Tree
Two useful jQuery methods for traversing down the DOM tree are:
    • children()
    • find()
The children() method returns all direct children of the selected element and it traverses only a single level down. 

The find() method returns descendant elements of the selected element, all the way down to the last descendant.
$(document).ready(function(){
     $("div").find("span");
});

  • Traversing Sideways in The DOM Tree
    • siblings(): Returns all the siblings of the current element. 
    • next()
    • nextAll()
    • nextUntil()
    • prev()
    • prevAll()
    • prevUntil()

  • jQuery prev(), prevAll() & prevUntil() Methods
The prev(), prevAll() and prevUntil() methods work just like the methods above but with reverse functionality: they return previous sibling elements (traverse backwards along sibling elements in the DOM tree, instead of forward).
JQuery Filtering
The first() method returns the first element of the selected elements.


  • jQuery + Ajax: 
<script>
$(document).ready(function(){
    $("button").click(function(){
       $("#div1").load("demo_test.txt");
  });
});
</script>

<div id="div1"><h2>Let jQuery AJAX Change This Text</h2></div>
<button>Get External Content</button>


  • jQuery load() Method
The load() method loads data from a server and puts the returned data into the selected element.
Syntax:
$(selector).load(URL,data,callback);
- The required URL parameter specifies the URL you wish to load.
- The optional data parameter specifies a set of querystring key/value pairs to send along with the request.
- The optional callback parameter is the name of a function to be executed after the load() method is completed.
$(document).ready(function(){
  $("button").click(function(){
    $("#div1").load("demo_test.txt");
  });
});
</script>


  • jQuery $.get() Method
The $.get() method requests data from the server with an HTTP GET request.
Syntax:
$.get(URL,callback);
$("button").click(function(){
  $.get("demo_test.asp",function(data,status){
    alert("Data: " + data + "\nStatus: " + status);
  });
});


  • jQuery $.post() Method
The $.post() method requests data from the server using an HTTP POST request.
Syntax:
$.post(URL,data,callback);
$("button").click(function(){
  $.post("demo_test_post.asp",
  {
    name:"Donald Duck",
    city:"Duckburg"
  },
  function(data,status){
    alert("Data: " + data + "\nStatus: " + status);
  });
});

There are many other popular JavaScript frameworks like: Angular, Backbone, Ember, Knockout, and more.


Basic Code Snippets
Get Text:
$("#btn1").click(function(){
  alert("Text: " + $("#test").text());
});

Set Text:
$("#btn1").click(function(){
  $("#test1").text("Hello world!");
});

Get Html:
$("#btn2").click(function(){
  alert("HTML: " + $("#test").html());
});

Set Html:
$("#btn2").click(function(){
  $("#test2").html("<b>Hello world!</b>");
});

Get Value:
$("#btn1").click(function(){
  alert("Value: " + $("#test").val());
});

Set Value: 
$("#btn3").click(function(){
  $("#test3").val("Dolly Duck");
});

Get Value:
$("button").click(function(){
  alert($("#w3s").attr("href"));
});

Set Value:
$("button").click(function(){
  $("#w3s").attr("href","http://www.w3schools.com/jquery");
});

$("button").click(function(){
  $("#w3s").attr({
    "href" : "http://www.w3schools.com/jquery",
    "title" : "W3Schools jQuery Tutorial"
  });
});


CSS Properties

CSS has so many different properties that it is confusing to keep a track of it. Most of the tutorials available online are only useful if you try the examples. This blogspot is a cheatsheet of some of the CSS properties. List is long so I am attempting to cover only a few. If you like it, please comment down below and I will make more blogposts like these

Color:
It will change the color of the text in the tag. For ex:
p {
color: blue;
}
This will change the text color to blue in all paragraphs.

Table: 
It will help you to add table to the page.

  • Border-collapse: If you decide to collapse the borders of the table then you should use border-collapse property.
    • border-collapse can take up following values: 
      • initial - Initial will remove the set value and revert it to the default.
      • inherit - Inherit will take this property from its parent element.
      • collapse - Collapse will collapse the double edged border to single property. 
      • separate - Separate will separate the borders. This is the default value. 
      •  For ex: table { border-collapse: separate; }
  • Border-spacing: If you want to put some space between different table cells then you should use border-spacing property. 
    • border-spacing can take up following values: length, initial, inherit. 
    • length can be specified in px, cm, For ex:
    • For ex: table { border-spacing: 10px, 20px }
      • 10px will set the horizontal spacing 20px will set the vertical spacing. 
  • Caption: Tables are always captioned. So you can change the alignment of the captions to top, bottom, or inherit it or change it to initial value. 
    • For ex: caption { caption-side: bottom; }
  • Empty-Cells: If you want to hide or show the empty cells in a table then you can use the property of table called as empty-cells. 
    • For ex: table { empty-cells: hide; }
    • In above example, the values can be changed to hide, show, initial, or inherit. 
    • The default value is show. 
  • Table-Layout: 
    • Sometimes it happens that in a table you have some content that is too big to fit in its cells. You can expand the table width as much as you like but there will surely be a situation, where your table content doesn't fit in fully. 
    • You can fix it by make the table-layout property to auto. It will handle the situation, where you have unknown length of content. 
    • It can take following values: fixed, auto, inherit, initial
    • For ex: table { table-layout: fixed; }

Hope you liked this article. If you want to read more of these then please comment down below. I will be happy to write similar articles if that helps! 

Text properties of CSS3

Font-face
In CSS3, one can download fonts from the web and use them using font-face rule. You just need to include it on your web-server. Once the user visits your website, the font will be downloaded to their machine if they don't have it. It is specified with the @font-face property. For ex:
@font-face {
 font-family: MyHelvetica;
 src: url(myHelvetica.woff);
}

If you to use it on any element then you specify it as font-family of that element as follows:
p {
 font-family: MyHelvetica;
}

Text Effects 
Overflow property: 
How will you handle a text-overflow in CSS? CSS3 introduced a new property called as text-overflow that can be defined as ellipsis or clipped. With ellipsis, the overflowing text will be replaced by ellipsis. Similarly, with clip, the overflowing text will be clipped. It is defined as follows:
div {
 text-overflow: clip;
}

div {
 text-overflow: ellipsis;
}

Moreover, there is an overflow property that can be specified with text-overflow. overflow property can take hidden or visible values. If you specify overflow as hidden then the cropped or hidden text will not be visible. if you specify overflow as visible, then you can see the cropped text. For ex:
div {
 overflow: hidden;
 text-overflow: clip;
}

div {
 overflow: visible;
 text-overflow: clip;
}


Word-wrap
If there is a very lengthy word then it might end up overflowing out of your div or p. In that case, you can specify word-wrap as break-word;
p {
 word-wrap: break-word;
}
Word-wrap can take two other values: keep-all, break-all keep-all: It will break the lengthy words at hyphens. break-all: It will break the lengthy words at any character. Ex:
p {
 word-wrap: keep-all;
}

p {
 word-wrap: break-all;
}
What is the difference between break-all and break-word? break-word will adjust the words so they do not break in middle. And it will wrap long words onto the next file. break-all will break the word at the width limit. The words that are broken can be any words(lengthy or not).

You might also like:
CSS Properties

What is 2D transform in CSS3?

CSS3 has 2D and 3D transform properties that allows to transform the elements. Transforming the elements means translating, rotating, scaling or skewing it. This will result in change of shape, size, and position of the element. Following are the properties that help you achieve 2D or 3D effects:

Translate: 
It will take two values, one for x-axis and other for y-axis. It is specified as follows: translate(10px, 50px). In this case, it will move 10px on x-axis and 50px on y-axis. For ex:
div {
 transform: translate(100px, 75px);
}



Rotate: 
It will rotate the element clockwise or anticlockwise. The values are degrees. It is specified as rotate(20deg) or rotate(-20deg). It will rotate the element by 20 degrees in clockwise or anticlockwise direction For ex:
div {
 transform: rotate(50deg);
}



Scale: 
It will increase the size of the element. It is specified as scale(x, y). The first value will increase the width of the element, and second value will increase its height. If scale(10,20) is specified, then width will be increase by 10 times and height will be increase by 20 times. For ex:
div {
 transform: scale(9, 7);
}



SkewX: 
It will skew the element along the X-axis. The value of skew is specified in degrees. If skewX(20deg) is specified then it will be skewed on X axis by 20 degrees. The value can be negative too. For ex:
div {
 transform: skewX(50deg);
}



SkewY: 
It is similar to SkewX with only difference of element being skewed along Y-axis. For ex:
div {
 transform: skewY(50deg);
}



Skew: 
It is similar to SkewX or SkewY with only difference that two values are specified X and Y. First specified value being X and second specified value being Y. For ex:
div {
 transform: skew(50deg, 50 deg);
}

Explain transition property of CSS3?

Transition allows you to smoothly update the property values. You specify the time period and the property to the changed. The property update will happen during the specified time period. It is specified as follow: transition: width 2s. This means that width will change to its new value in 2 seconds. For ex:
div {
 width: 10px;
 height: 20px
 transition: width 2s, height 4s;
}

div:hover {
 width: 20px;
 height: 40px;
 transition: width 2s, height 4s
}
In the above example, upon hover over div width will change from 10px to 20px within 2s. And height will change from 20px to 40px within 4s.



Timing:
 You can specify the transition timing function as linear, ease, ease-in, ease-out, ease-in-out for the effect to take place.

  • Ease will make transition effect with a slow start then fast, then slow in the end. 
  • Ease-in makes transition effect to remain at same speed from start to end. 
  • Ease-out starts out the transition effect as slow then it moves at normal speed. 
  • Ease-in-out starts out the transition as slow and ends it as slow. For ex:

div {
 transition-timing-function: ease;
}



 Delay: 
Since transition is all about timing an effect on a specific element, we can delay our timing as well. It can be specified by transition-delay: 1s.
div {
 transition-delay: 2s;
 }

Explain animation in CSS3

One of the coolest property of CSS3 is animations. You can create an animation with only a CSS to your file. Since animation is like a series of frames, you will have to specify properties of different frames at different times. For each frame, you will have to specify the animation name, duration. Then in the animation name you will have to specify the from and to values of each property that you want to change. For ex:
div {
 width: 50px;
 height: 50px;
 background-color: #d8d8d8;
 animation-name: animateDiv;
 animation-duration: 4s;
}
@keyframes animateDiv {
 from {background-color: #d8d8d8; }
 to {background-color: #d0d0d0; }
 from {width: 50px; }
 to {width: 150px; }
 from {height: 50px; }
 to {height: 100px; }
}
In the above example, we specified animation-name & animation-duration in the div section. Animation-name is animateDiv, for which we specify from and to values of different properties. All the from to to values will take effect for the properties within 4s. If you don't want to change the animation from just one value to second value, you can specify the change to take place at specific percent. If you specify 10%{height: 10px;}, 20%(height: 20px} then height will change to 10px at 10% of animation-duration, 20px at 20% of animation-duration. For ex:
@keyframes animateDev {
 0% {height: 10px}
 20% {height: 20px}
 40% {height: 30px}
 60% {height: 40px}
 80% {height: 50px}
 100% {height: 60px}
}
In the above example, the height changes to 10px at 0% of animation-duration, to 20px at 20%, and so on


Animation Delay:
It will start the animation at a specified delay. It is specified as animation-delay: value; For ex:
div {
 animation-delay: 2s;
}



 Animation Iteration:
Sometimes you don't want to run an animation only once, you might want to run it a lot of times. In that case, you can specify the iteration-count. And if you want to run an animation forever, you just need to specify the value to infinite. You specify the property and value as animation-iteration-count: infinite For ex:
div {
 animation-iteration-count: 3;
}

OR 

div {
 animation-iteration-count: infinite;
}



 Animation Direction:
You can run the animation in reverse or alternate cycle manner. You specify it as animation-direction: reverse; or animation-direction: alternate. If you specify alternate direction, then the animation will run in clockwise and anti-clockwise direction on alternate iterations. For ex:
div {
 animation-direction: reverse;
}

What are gradients in CSS3?

What is linear gradient in CSS?

  • Gradient allows for smooth transitions between colors, which helps to reduce download speed and lowers bandwidth requirements.
  • It is applicable on the background property.
  • There are two types of gradient in CSS3: Linear and radial
  • For linear gradient you must specify 2 colors and direction in which the color. For ex: background: linear-gradient(top, red, blue); //This will make the color change from red to blue starting from top to bottom.
  • Different directions can be: top, left, right, bottom
  • Top to bottom is default value for the linear gradient. In that case the definition looks like: linear-gradient(red, blue). If direction is omitted, by default top direction is assumed.
  • For different browsers linear gradient property is referred as:
    • -webkit-linear gradient: For Safari
    • -0-linear gradient: For Opera
    • -mox-linear gradient: For: For Firefox
    • linear gradient: For standard syntax
  • To specify gradient direction as diagonal 2 endpoints are supposed to be mentioned.
  • For ex: linear-gradient(to bottom right, red, black) //It will move from bottom right starting with red color and gradually change it to black
  • You can specify angles in the linear gradient as follows: linear-gradient(180deg, red, blue)
  • You can specify multiple colors too like this: linear-gradient(red, green, blue, black)
  • Gradient can be made transparent to generate a fading effect. For transparency, rgba function with 0 to 1 can be added.
    • 0 indicates: full transparency
    • 1 indicates: full color and zero transparency.
    • For ex:
      • linear-gradient(rgba(255,0,0,0), rgba(255,2,3,1))



What is radial gradient in CSS?

  • Linear gradient allows you to transform the color from the sides and corners of a shape. However, radial gradient allows you to transform color from center.
  • It is similar to linear gradient wherein you have to specify at least 2 colors. 
    • For ex: radial-gradient(red, blue)
  • You can specify different width for the color stops like this: radial-gradient(red 5%, blue 95%) //Red will only occupy 5% and blue will occupy 95%
  • If you have to repeat the result of a radial gradient across an element then you should use, repeating-radial-gradient. 
    • For ex: repeating-radial-gradient(red, blue 40%, green 35%)

Explain border radius property of CSS3


  • border-radius property of Css3 allows to give a web page element the looks of rounded corners.
  • You can specify it like this:
    • border-radius: 10px
  • You can specify different radius value for each corner of the element. You can specify 4 values for each corner, 3 values, 2 values, and 1 value for all corner:
    • If 4 values are specified then 1st, 2nd, 3rd, 4th value will apply to top-left, top-right, bottom-right, bottom-left corner respectively.
      • For ex: border-radius: 40px, 30px, 20px, 10px; top-left = 40px top-right = 30px bottom-right= 20 px bottom-left = 10px
    • If 3 values are specified then 1st, 2nd, 3rd value will apply to top-left, top-right, and (bottom-left & bottom-right) respectively. For ex: border-radius: 40px, 30px, 20px;
      • In above ex: top-left = 40px top-right = 30px bottom-left and bottom-right = 20 px
    • If 2 values are specified then 1st and 2nd value will apply to following 2 sets respectively. For ex:
      • border-radius: 40px, 30px;
      • In above ex: top-left and top-right= 40px bottom-left and bottom-right = 30px
    • If only value is specified then all corners will have the same value: 
      • For ex: border-radius: 40px;
  • You can create elliptical corners too: 
    • For ex: border-radius: 40px/20px;
  • If you have to specify only one border than you can specify it as follows
    • border-top-left-radius
    • border-top-right-radius
    • border-bottom-left-radius
    • border-bottom-right-radius

NoSQL

NoSQL Data models: key-value  Aggregate model.  key or id is used to get the data.  Lookup is based on the key.   document Aggre...